在Python的subprocess.Popen
中,可以使用timeout
參數來指定子進程的超時時間。當設置了timeout
參數后,如果子進程在超時時間內沒有完成,subprocess.TimeoutExpired
異常將被拋出。
下面是一個簡單的示例:
import subprocess
try:
result = subprocess.run(["ping", "www.google.com"], timeout=5, check=True)
print("Ping successful")
except subprocess.TimeoutExpired:
print("Ping timed out")
except subprocess.CalledProcessError as e:
print("Ping failed with error code", e.returncode)
在上面的示例中,subprocess.run
函數會執行ping命令,如果執行時間超過5秒,將會拋出subprocess.TimeoutExpired
異常。
另外,需要注意的是,timeout
參數只在Python 3.3及以上版本中可用。如果使用的是更早版本的Python,可以考慮使用signal
模塊來實現類似的功能。