在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ò)誤信息。