下面是运行任意命令返回stdout
数据的Python代码,或在非零退出码上引发异常:
proc = subprocess.Popen(
cmd,
stderr=subprocess.STDOUT, # Merge stdout and stderr
stdout=subprocess.PIPE,
shell=True)
communicate
用于等待进程退出:
stdoutdata, stderrdata = proc.communicate()
subprocess
模块不支持超时——杀死运行超过X秒的进程的能力——因此,communicate
可能需要很长时间才能运行。
在Windows和Linux上运行的Python程序中实现超时的简单的方法是什么?