在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
命令。stdout
和stderr
參數(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
。