有些脚本跑外部命令时,最烦的不是报错,是一直挂着。
subprocess.run(..., timeout=秒数) 这个我现在会先放上,至少不会默默卡死。环境:Python 3.10+,只用标准库。
import subprocess
try:
result = subprocess.run(
["python", "-c", "import time; time.sleep(2); print('done')"],
capture_output=True,
text=True,
timeout=1,
check=True,
)
print(result.stdout.strip())
except subprocess.TimeoutExpired:
print("命令超时了")
这种比跑着跑着没声了好处理多了。