在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
模块来实现类似的功能。