[英]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.