带有修改环境的Python子进程/Popen我认为,运行带有稍微修改环境的外部命令是非常常见的情况。我就是这么做的:import subprocess, os
my_env = os.environ
my_env["PATH"] = "/usr/sbin:/sbin:" + my_env["PATH"]subprocess.Popen(my_command, env=my_env)我有一种直觉,认为有更好的方法,它看起来还好吗?
3 回答

繁华开满天机
TA贡献1816条经验 获得超4个赞
os.environ.copy()
import subprocess, os my_env = os.environ.copy()my_env["PATH"] = "/usr/sbin:/sbin:" + my_env["PATH"]subprocess.Popen(my_command, env=my_env)

胡子哥哥
TA贡献1825条经验 获得超6个赞
subprocess.Popen(my_command, env=dict(os.environ, PATH="path"))
subprocess.Popen(my_command, env=dict(os.environ, **{"Not valid python name":"value"}))
bytes

慕沐林林
TA贡献2016条经验 获得超9个赞
import osimport subprocess my_env = {**os.environ, 'PATH': '/usr/sbin:/sbin:' + os.environ['PATH']}subprocess.Popen(my_command, env=my_env)
os.environ
PATH
os.environ
my_env = {**os.environ, **dict_with_env_variables}
添加回答
举报
0/150
提交
取消