繁体   English   中英

python子进程一个一个运行

[英]python subprocess run by one by

我有一些过程:

subprocess.Popen(['python2.7 script1.py')],shell=True)
subprocess.Popen(['python2.7 script2.py')],shell=True)
subprocess.Popen(['python2.7 script3.py')],shell=True)
subprocess.Popen(['python2.7 script4.py')],shell=True)

我希望每个人都在前一个过程完全完成后开始。 我的意思是

subprocess.Popen(['python2.7 script2.py')],shell=True)

开始于

subprocess.Popen(['python2.7 script1.py')],shell=True)

完全完成,其他人也一样。 这是因为以前的脚本有输出,它被下一个脚本使用。 谢谢

您可以简单地为每个完成使用wait() ,如下所示:

sp1 = subprocess.Popen(['python2.7 script1.py'],shell=True)
sp1.wait()

sp2 = subprocess.Popen(['python2.7 script2.py'],shell=True)
sp2.wait()

sp3 = subprocess.Popen(['python2.7 script3.py'],shell=True)
sp3.wait()

sp4 = subprocess.Popen(['python2.7 script4.py'],shell=True)
sp4.wait()

或者用更短的方式:

subprocess.Popen(['python2.7 script1.py'],shell=True).wait()
subprocess.Popen(['python2.7 script2.py'],shell=True).wait()
subprocess.Popen(['python2.7 script3.py'],shell=True).wait()
subprocess.Popen(['python2.7 script4.py'],shell=True).wait()

使用subprocess.call

运行args描述的命令。 等待命令完成,然后返回returncode属性。

在你的例子中:

subprocess.call(['python2.7 script1.py'],shell=True)
subprocess.call(['python2.7 script2.py'],shell=True)
subprocess.call(['python2.7 script3.py'],shell=True)
subprocess.call(['python2.7 script4.py'],shell=True)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM