有一个列表,我想使用子进程顺序执行。当我想在执行前一个文件后才执行下一个文件时,应该使用什么方法?
for index in acnt_df.index:
os.environ["a"] = str(acnt_df["acnt"][index])
subprocess.Popen(
["python", "start.py"]
)
我试过了,但是它在第一个文件结束之前打开了下一个文件
用subprocess.run
代替subprocess.Popen
for index in acnt_df.index:
os.environ["a"] = str(acnt_df["acnt"][index])
p = subprocess.run(["python", "start.py"])
subprocess
模块的检出文档:
关于如何控制另一个正在运行的进程有非常细粒度的方法。如果您想使用Popen
对象的全部功能,您可以使用
for index in acnt_df.index:
os.environ["a"] = str(acnt_df["acnt"][index])
p = subprocess.Popen(["python", "start.py"])
p.wait()
然而,当您调用python脚本时,建议将其更改为能够将其作为模块导入,并将a
环境变量作为普通函数参数传递。即改变start.py
,使其能够:
import start
for index in acnt_df.index:
a = str(acnt_df["acnt"][index])
start.main(a)