是的,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
语句捕获这个异常并输出相应的错误信息。