我目前正在使用子进程在我当前的Python中运行Python脚本,但它一直给我一个错误:
for dir in os.listdir(os.path.join(DIR2,dirname)):
temp = os.path.join(os.path.join(DIR2,dirname),dir)
files = [os.path.join(temp, f) for f in os.listdir(temp) if f.endswith("json")]
for lists in files:
subprocess.Popen(["python", DIR4, os.path.join(temp,lists)])
以上就是我目前正在使用的内容。
DIR4
是我想要运行的python的路径。
问题是,我想运行的python一次只能获取一个文件。 但是,这个子进程看起来好像试图在ONCE上执行ALL。
我希望一次运行一个,而不是ONCE的ALL。 因为它在ONCE运行ALL,我想要运行的python不能像它那样工作..
我需要做些什么来改变这个?
答案 0 :(得分:0)
如果你想先等待子进程终止,那么在继续之前,我认为你可以使用Popen.wait():
...
p = subprocess.Popen(["python", DIR4, os.path.join(temp,lists)])
p.wait()
...
答案 1 :(得分:0)
要实际执行您所要求的内容,而不是通过子进程一起破解它,您可以使用exec
,它允许您使用自己提供的全局变量和本地变量运行python代码。
在旧版本的Python(意思是前3版)中,您可以使用execfile
to achieve the same thing。