在Python 3.3+中:
from subprocess import STDOUT, check_output
output = check_output(cmd, stderr=STDOUT, timeout=seconds)
output
是一个字节字符串,其中包含命令的合并标准输出,标准错误数据。
check_output
加注CalledProcessError
在不同问题的文本中指定的非零退出状态proc.communicate()
的方法。
我已删除,shell=True
因为它经常被不必要地使用。如果cmd确实需要,可以随时将其添加回去。如果添加,shell=True
即子进程是否产生了自己的后代;check_output()
可以比超时指示晚得多返回,请参阅子进程超时失败。
超时功能可在Python 2.x
上通过subprocess323.2+
子进程模块的反向端口使用。