溫馨提示×

python返回狀態(tài)碼和錯(cuò)誤信息怎么解決

小億
194
2023-10-11 18:06:38
欄目: 編程語言

在Python中,可以使用subprocess模塊來執(zhí)行外部命令并獲取返回狀態(tài)碼和錯(cuò)誤信息。以下是一個(gè)例子:

import subprocess
def run_command(command):
try:
# 執(zhí)行命令
result = subprocess.run(command, shell=True, capture_output=True, text=True)
# 獲取返回狀態(tài)碼和錯(cuò)誤信息
return result.returncode, result.stderr
except Exception as e:
# 發(fā)生異常時(shí)返回錯(cuò)誤信息
return -1, str(e)

在該示例中,run_command函數(shù)接收一個(gè)命令作為參數(shù),并使用subprocess.run方法執(zhí)行該命令。設(shè)置shell=True參數(shù)可以在執(zhí)行命令時(shí)使用shell環(huán)境。capture_output=True參數(shù)用于捕獲命令的輸出結(jié)果,設(shè)置text=True參數(shù)可以將輸出結(jié)果以文本形式返回。

result.returncode表示返回狀態(tài)碼,非零值通常表示命令執(zhí)行出錯(cuò)。result.stderr表示錯(cuò)誤信息。

你可以像下面這樣調(diào)用run_command函數(shù)來執(zhí)行命令并獲取返回狀態(tài)碼和錯(cuò)誤信息:

command = "ls -l"
return_code, error_message = run_command(command)
if return_code == 0:
print("命令執(zhí)行成功")
else:
print(f"命令執(zhí)行失敗,錯(cuò)誤信息:{error_message}")

在這個(gè)例子中,我們執(zhí)行ls -l命令并判斷返回狀態(tài)碼是否為零來確定命令是否執(zhí)行成功。如果返回狀態(tài)碼非零,則打印錯(cuò)誤信息。

0