我已經開始使用一個子進程:Python的 - 殺掛起進程開始使用subprocess.Popen
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)
output = proc.communicate()[0]
有時命令cmd
掛,所以我的Python腳本也掛在這一點上。
我想讓它運行一段時間(10秒?),如果我沒有得到響應,那麼簡單地殺死進程並繼續使用我的腳本。
我該怎麼做?
我已經開始使用一個子進程:Python的 - 殺掛起進程開始使用subprocess.Popen
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)
output = proc.communicate()[0]
有時命令cmd
掛,所以我的Python腳本也掛在這一點上。
我想讓它運行一段時間(10秒?),如果我沒有得到響應,那麼簡單地殺死進程並繼續使用我的腳本。
我該怎麼做?
如果你使用python 3,Popen.communicate
有超時kwarg:
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)
output = proc.communicate(timeout=10)[0]
從subprocess documentationproc.terminate()
是你什麼是正在尋找
是的,我能做到這一點,但什麼都可以「 t do等待10秒,然後選擇放棄。我怎麼做? – jlconlin
多方便。我應該更仔細地閱讀文檔。 – jlconlin