我有一系列脚本我正在使用subprocess.Popen
自动调用python。基本上,我调用脚本A,然后调用脚本B,然后调用脚本C,依此类推。
脚本A使用set SOME_VARIABLE=SCRIPT_A
,set PATH=%SCRIPT_A:/=\;%PATH%
等命令设置一堆本地shell变量。
脚本B和C然后需要具有这种效果。在unix中,您可以使用“source script_a.sh
”调用脚本A.效果在当前命令窗口中持续。但是,subprocess.Popen有效地启动了一个新窗口(种类)。
显然subprocess.Popen
不是我想要这样做的命令。我该怎么做?
编辑我尝试解析文件(这是所有'set'语句)并将它们作为字典传递给subprocess.Popen中的'env',但它似乎没有全部工作..
答案 0 :(得分:0)
您可以使用包含变量的python字典向Popen使用env
参数,然后您不需要运行仅设置变量的命令。
答案 1 :(得分:0)
如果'脚本A'由另一个进程生成,您将需要更改另一个进程,因此输出文件的格式可以将您的源代码(import
)导入到python脚本中。或者在python中编写一个解析器,它可以消除“脚本A”中的变量,并在python脚本中设置它们。
答案 2 :(得分:0)
如果您只想使用Python调用一系列批处理文件,您可以创建一个帮助程序批处理文件,该文件将调用所有这些批处理文件
call scriptA;
call scriptB;
call scriptC;
使用subprocess.Popen