溫馨提示×

Python執(zhí)行命令如何捕獲

小樊
81
2024-11-16 22:51:52
欄目: 編程語言

在Python中,你可以使用subprocess模塊來執(zhí)行外部命令并捕獲輸出

import subprocess

# 要執(zhí)行的外部命令,例如:ls
command = "ls"

# 使用subprocess.run()執(zhí)行命令
result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, shell=True)

# 打印執(zhí)行結(jié)果
print("命令輸出:")
print(result.stdout)

print("錯誤輸出:")
print(result.stderr)

# 檢查命令是否成功執(zhí)行
if result.returncode == 0:
    print("命令執(zhí)行成功")
else:
    print("命令執(zhí)行失敗,返回碼:", result.returncode)

在這個示例中,我們使用subprocess.run()函數(shù)執(zhí)行了一個簡單的ls命令。stdoutstderr參數(shù)分別用于捕獲命令的標(biāo)準(zhǔn)輸出和錯誤輸出。text=True表示以文本模式處理輸出,而不是字節(jié)模式。shell=True表示在shell中執(zhí)行命令,這在執(zhí)行包含管道、重定向等特性的命令時非常有用。

注意:在使用shell=True時,務(wù)必小心,因?yàn)樗赡軙?dǎo)致安全漏洞,特別是當(dāng)執(zhí)行的命令包含用戶提供的輸入時。在這種情況下,最好使用命令序列(列表形式)而不是命令字符串,并避免使用shell=True

0