我已经开始使用以下子进程:
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)
output = proc.communicate()[0]
有时命令cmd
会挂起,所以我的Python脚本也会挂起。
我想让它运行一段时间(10秒钟?),如果我没有得到回复,那么只需终止该过程并继续使用我的脚本。
我该怎么做?
答案 0 :(得分:2)
如果你正在使用python 3,Popen.communicate
有一个超时kwarg:
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)
output = proc.communicate(timeout=10)[0]
答案 1 :(得分:0)
来自subprocess documentation proc.terminate()
正是您正在寻找的