如果我用subprocess.PopenPython 调用进程如下:
myproc = subprocess.Popen(...).communicate()
查看其状态的正确方法是什么?不是它输出到stdout或stderr,而是它的退出状态一旦完成(例如0表示成功或另一表示失败)?
小智 22
returncode 确实是答案,但解决方案不需要复杂.
process = subprocess.Popen(...)
stdoutdata, stderrdata = process.communicate()
print process.returncode
Run Code Online (Sandbox Code Playgroud)
Python subprocess文档中的更多信息.
在完成执行之前,进程没有返回代码.因此,如果还没有完成,你必须决定你想做什么:等待它,或者返回一些"我还没有完成"的指示.
如果要等待,请使用communicate然后检查returncode属性.
如果要检查是否设置了返回代码,None如果没有,则返回,请使用Popen.poll().
Popen.poll()
检查子进程是否已终止.设置并返回returncode属性.
(如果流程尚未终止,则poll()返回None)
| 归档时间: |
|
| 查看次数: |
28769 次 |
| 最近记录: |