我使用以下脚本运行外部脚本:
with open( 'blah.txt', 'w' ) as f:
subprocess.call( [ 'exec1', 'param1' ], stdout=f, stderr=f )
问题>我需要同时运行两个脚本(即exec1和exec2),每个脚本都写入不同的文件。我也想知道两个脚本何时完成执行。在python中有一个很好的方法吗?
答案 0 :(得分:0)
你可以试试这个:
from subprocess import Popen
f1 = open( 'blah.txt', 'w' )
f2 = open( 'other_blah.txt', 'w' )
proc1 = Popen([ 'exec1', 'param1' ], stdout=f1, stderr=f1)
proc2 = Popen([ 'exec2', 'param2' ], stdout=f2, stderr=f2)
# If you don't need to be doing anything else, wait for both to finish
proc1.wait()
proc2.wait()
f1.close()
f2.close()
如果您正在处理wait()
stdin或stdout,请注意subprocess.PIPE
的常见警告 - 如果您最终不得不担心这一点,您可以考虑转到使用的循环poll()
定期检查这两个流程。