我想在shell中设置环境变量,然后在后续命令中使用这些变量;但是在shell模式下使用subprocess.call()不会保持环境变量的设置。如何通过子流程获得所需的功能。
以下是我遇到的问题的简化示例:
import subprocess
#Method 1
subprocess.call('VARNAME1=\"MyValue1\"', shell=True)
subprocess.call("echo $VARNAME1", shell=True)
#Method 2
subprocess.call('VARNAME2=\"MyValue2\"; echo $VARNAME2', shell=True)
输出:
>
> MyValue2
预期产出:
> MyValue1
> MyValue2
我将无法将命令与";"正如我在第二种方法中所做的那样。
感谢您的帮助。
答案 0 :(得分:1)
要设置环境变量,必须使用os.environ数组
例如:
import os
os.environ['VARNAME1'] = "My value"