我需要在Windows机器(Windows 7(的后台运行以下命令
os.system("SET TZ=GMT-5 && firefox")
似乎我应该使用Popen
,但是命令
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
在 *.exe 命令前面添加start
os.system("SET TZ=GMT-5 && start firefox")
正如注释中已经暗示的那样,您可以将env
参数传递给Popen
和朋友,以修改您正在启动的程序的环境。
我猜你真的想要subprocess.run()
,但这显然取决于你开始这个过程后你需要做什么。
subprocess.run(['firefox'], env={'TZ': 'GMT-5'})
如评论中所述,您可能希望通过添加os.environ
传递所有内容。
env = os.environ.copy()
env['TZ'] = 'GMT-5'
subprocess.run(['firefox'], env=env)
当然,如果您的更改是无害的,则可以直接操纵os.environ
。