你可以使用 subprocess.run
函数的 timeout
参数来设置超时时间。如果超时,它会引发一个 TimeoutExpired
异常,你可以在 try-except
语句中捕获这个异常,然后使用 subprocess.Popen
对象的 terminate
方法来终止子进程。
下面是一个例子:
import subprocesstry:
completed_process = subprocess.run(['sleep', '10'], timeout=5)
except subprocess.TimeoutExpired:
# 超时了,终止子进程
completed_process.kill()
completed_process.wait()
在这个例子中,我们使用 subprocess.run
函数来运行一个 sleep 10
命令,并设置超时时间为 5 秒。如果子进程在 5 秒内没有结束,就会引发 TimeoutExpired
异常,然后我们使用 kill
方法来终止子进程。