是的,Python 的 subprocess
模块中的 wait()
函数可以处理异常。当你使用 subprocess.Popen
类创建一个子进程并调用其 wait()
方法时,如果子进程退出状态码不是零,那么会引发一个 subprocess.CalledProcessError
异常。你可以使用 try-except
语句来捕获这个异常并进行相应的处理。
下面是一个简单的示例:
import subprocess
# 创建一个子进程
cmd = "your_command_here"
process = subprocess.Popen(cmd, shell=True)
try:
# 等待子进程完成并获取退出状态码
exit_code = process.wait()
# 检查退出状态码是否为0(成功)
if exit_code == 0:
print("子进程执行成功")
else:
print(f"子进程执行失败,退出状态码:{exit_code}")
except subprocess.CalledProcessError as e:
print(f"捕获到异常:{e}")
在这个示例中,我们使用 subprocess.Popen
创建了一个子进程,并尝试使用 wait()
方法等待其完成。如果子进程执行成功,exit_code
将为 0,否则将引发 subprocess.CalledProcessError
异常。我们使用 try-except
语句捕获这个异常并输出相应的错误信息。