Gri*_*yan 20 python system-calls
标题中已经存在的问题 - 如何使python脚本等到使用os.system()调用启动某个进程完成后?例如代码就像
for i in range( 0, n ):
os.system( 'someprog.exe %d' % i )
Run Code Online (Sandbox Code Playgroud)
这会同时启动请求的过程n次,这可能会让我的电脑出汗一点)
谢谢你的建议.
Dor*_*mer 19
subprocess改为使用:
import subprocess
for i in xrange(n):
p = subprocess.Popen(('someprog.exe', str(i))
p.wait()
Run Code Online (Sandbox Code Playgroud)
在这里阅读更多内容:http://docs.python.org/library/subprocess.html
gps*_*gps 17
os.system()会在返回之前等待其进程完成.
如果你看到它没有等待,你正在启动的进程可能会自行分离以在后台运行,在这种情况下,subprocess.Popen +等示例Dor给出了帮助.
旁注:如果你想要的只是subprocess.Popen + wait使用subprocess.call:
import subprocess
subprocess.call(('someprog.exe', str(i)))
Run Code Online (Sandbox Code Playgroud)
除了显式传递命令和参数而不是将其作为单个字符串传递之外,这与os.system()没有什么不同.