我认为在稍微修改的环境下运行外部命令是一种非常常见的情况.我倾向于这样做:

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

我有一种直觉,觉得有更好的方法;看起来还好吗?

推荐答案

我认为如果你不打算修改操作系统,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)

Python相关问答推荐

使用字典或列表的值组合

在用于Python的Bokeh包中设置按钮的样式

pytest、xdist和共享生成的文件依赖项

用由数据帧的相应元素形成的列表的函数来替换列的行中的值

从列表中分离数据的最佳方式

具有不匹配列的2D到3D广播

大型稀疏CSR二进制矩阵乘法结果中的错误

有没有一种方法可以根据不同索引集的数组从2D数组的对称子矩阵高效地构造3D数组?

日志(log)轴上的自定义刻度出现意外的次要刻度标记行为

如何从多个词典中制作Pandas 数据帧?

极点在没有Groupby的情况下聚合

从语法生成后出现Antlr4 Python运行时错误

为列PANAS中的每个字符串值创建累计和列

如何动态修改气流任务decorator 属性?

返回最后一行以上的所有行,直到满足Python中的条件

我怎样才能用python打印一个 map 对象?

是否有与字节文字等价的函数?

如果没有强制转换Numy数组,则通过ctype将Numy数组传递给C函数会产生错误的结果

查找polars框架列和字符串变量之间的相似性时出错

Django-如何通过两个相同的字段进行筛选或排除?