首頁 >後端開發 >Python教學 >如何在 Python 中捕獲 Shell 命令輸出並將其作為字串傳回?

如何在 Python 中捕獲 Shell 命令輸出並將其作為字串傳回?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-04 02:09:10633瀏覽

How Can I Capture and Return Shell Command Output as a String in Python?

將Shell 指令輸出擷取為字串

問題:

擷取shell 指令的輸出並將其傳回為一個字串,無論是錯誤還是成功

Python 3.5及更高版本(現代):

import subprocess

def run_command(cmd):
    result = subprocess.run(cmd, stdout=subprocess.PIPE, shell=True)
    return result.stdout.decode('utf-8')

print(run_command('mysqladmin create test -uroot -pmysqladmin12'))
# Example Output:
# mysqladmin: CREATE DATABASE failed; error: 'Can't create database 'test'; database exists'

Python 2.7 - 3.4(舊版):

import subprocess

def run_command(cmd):
    output = subprocess.check_output(cmd, shell=True)
    return output

print(run_command('mysqladmin create test -uroot -pmysqladmin12'))
# Example Output:
# mysqladmin: CREATE DATABASE failed; error: 'Can't create database 'test'; database exists'

Popen🎜>

import subprocess

def run_command(cmd):
    p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
    output, error = p.communicate()
    return output

print(run_command('mysqladmin create test -uroot -pmysqladmin12'))
# Example Output:
# mysqladmin: CREATE DATABASE failed; error: 'Can't create database 'test'; database exists'
Popen 物件(複雜複雜應用程式和Python 2.6及以下):

    注意:
  • 程式碼可能需要修改以處理特定的 shell 環境或場景。
直接執行shell指令會帶來潛在的安全風險。建議使用更安全的運行方法或單獨執行每個命令並手動管道輸出。

以上是如何在 Python 中捕獲 Shell 命令輸出並將其作為字串傳回?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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