这些是我要运行的一些相关命令。我的期望是它将当前文件夹更改为abc
和列表文件。
同样在设置z=88
之后,它也会打印z
。
import subprocess
cmd_list = []
cmd_list.append("cd ./abc")
cmd_list.append("ls")
cmd_list.append("export z=88")
cmd_list.append("echo $z")
my_env = os.environ.copy()
for cmd in cmd_list:
sp = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=my_env, shell=True,text=True)
但是无法获得ls
和echo $z
的任何输出>
这些是我要运行的一些相关命令。我的期望是它将当前文件夹更改为abc和列表文件。同样在设置z = 88之后,它将打印z。导入子进程cmd_list = ...
您无法通过多次调用subprocess.Popen()
来执行此操作。每个调用都会创建一个新的子进程,并且它们对环境所做的更改不会传播回Python进程。