是的,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
語句捕獲這個異常并輸出相應的錯誤信息。