一尘不染

具有修改后环境的Python子进程/ Popen

python

我相信在环境稍有修改的情况下运行外部命令是很常见的情况。这就是我倾向于这样做的方式:

import subprocess, os
my_env = os.environ
my_env["PATH"] = "/usr/sbin:/sbin:" + my_env["PATH"]
subprocess.Popen(my_command, env=my_env)

我感觉到有更好的办法了。看起来还好吗?


阅读 321

收藏
2020-02-20

共1个答案

一尘不染

我认为os.environ.copy()如果你不打算为当前过程修改os.environ会更好:

import subprocess, os
my_env = os.environ.copy()
my_env["PATH"] = "/usr/sbin:/sbin:" + my_env["PATH"]
subprocess.Popen(my_command, env=my_env)
2020-02-20