在Python中,你可以使用subprocess
模塊來執行外部命令并捕獲輸出
import subprocess
# 要執行的外部命令,例如:ls
command = "ls"
# 使用subprocess.run()執行命令
result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, shell=True)
# 打印執行結果
print("命令輸出:")
print(result.stdout)
print("錯誤輸出:")
print(result.stderr)
# 檢查命令是否成功執行
if result.returncode == 0:
print("命令執行成功")
else:
print("命令執行失敗,返回碼:", result.returncode)
在這個示例中,我們使用subprocess.run()
函數執行了一個簡單的ls
命令。stdout
和stderr
參數分別用于捕獲命令的標準輸出和錯誤輸出。text=True
表示以文本模式處理輸出,而不是字節模式。shell=True
表示在shell中執行命令,這在執行包含管道、重定向等特性的命令時非常有用。
注意:在使用shell=True
時,務必小心,因為它可能會導致安全漏洞,特別是當執行的命令包含用戶提供的輸入時。在這種情況下,最好使用命令序列(列表形式)而不是命令字符串,并避免使用shell=True
。