首頁 >後端開發 >Python教學 >如何在 Python 中捕捉 Shell 指令的輸出?

如何在 Python 中捕捉 Shell 指令的輸出?

Linda Hamilton
Linda Hamilton原創
2025-01-04 03:28:43456瀏覽

How Can I Capture the Output of Shell Commands in Python?

擷取 Shell 指令的輸出

執行 shell 指令時,通常需要擷取其輸出,無論是錯誤訊息還是成功訊息。以下是實現此目的的一些方法:

Python 3.5

run 函數:

import subprocess

result = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE)
output = result.stdout.decode('utf-8')

subprocess.run(['ls', '-l'], capture_output=True, text=True).stdout
Python 2.7

check_output函數:

import subprocess

output = subprocess.check_output(['mysqladmin', 'create', 'test', '-uroot', '-pmysqladmin12'])
output = output.decode('utf-8')
高級案例的Popen**

import subprocess

p = subprocess.Popen(['ls', '-a'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, error = p.communicate()
output = output.decode('utf-8')
if error:
    error = error.decode('utf-8')
註釋

  • shell=True:謹慎使用此參數,因為它會引發允許執行任意 shell 命令的安全性問題。
  • 通訊:使用通訊來捕獲輸出並可選擇發送輸入。
  • 管路:避免直接連接管道。考慮單獨執行命令並在它們之間傳遞輸出。

以上是如何在 Python 中捕捉 Shell 指令的輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn