首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将os.system命令转换为subprocess.Popen

如何将os.system命令转换为subprocess.Popen
EN

Stack Overflow用户
提问于 2017-04-11 11:08:32
回答 1查看 155关注 0票数 0

我需要在windows机器(Windows 7)的背景下运行

代码语言:javascript
复制
os.system("SET TZ=GMT-5 && firefox")

似乎我应该使用Popen,但是命令

代码语言:javascript
复制
subprocess.Popen("SET TZ=GMT-5;firefox", shell=True, stdin=None, stdout=None, stderr=None)

没有效果。其他变体os.spawnl会导致错误,因为我使用rpc。

知道如何在bg中运行os.system("SET TZ=GMT-2 && firefox")吗?

解决方案1

start命令前面添加*.exe

代码语言:javascript
复制
os.system("SET TZ=GMT-5 && start firefox")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-11 11:32:08

正如注释中已经暗示的那样,您可以将一个env参数传递给Popen和朋友,以修改正在启动的程序的环境。

我猜您实际上想要subprocess.run(),但这显然取决于启动过程后需要对它做什么。

代码语言:javascript
复制
subprocess.run(['firefox'], env={'TZ': 'GMT-5'})

正如注释中所指出的,您可能希望通过添加传递所有的os.environ

代码语言:javascript
复制
env = os.environ.copy()
env['TZ'] = 'GMT-5'
subprocess.run(['firefox'], env=env)

当然,如果您的更改是无害的,您可以直接操作os.environ

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43344223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档