Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich die Ausgabe von Shell-Befehlen als String in Python erfassen und zurückgeben?

Wie kann ich die Ausgabe von Shell-Befehlen als String in Python erfassen und zurückgeben?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-04 02:09:10600Durchsuche

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

Shell-Befehlsausgabe als String erfassen

Problem:

Erfassen Sie die Ausgabe eines Shell-Befehls und geben Sie sie als zurück eine Zeichenfolge, unabhängig davon, ob es sich um eine Fehler- oder Erfolgsmeldung handelt.

Python 3.5 und Höher (Modern):

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 (Legacy):

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 Objects (Komplexe Anwendungen und Python 2.6 und Unten):

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'

Hinweis:

  • Der Code muss möglicherweise geändert werden, um bestimmte Shell-Umgebungen oder -Szenarien zu verarbeiten.
  • Das direkte Ausführen von Shell-Befehlen birgt potenzielle Sicherheitsrisiken. Es wird empfohlen, die sicherere Ausführungsmethode zu verwenden oder die Ausführung jedes Befehls zu trennen und die Ausgabe manuell weiterzuleiten.

Das obige ist der detaillierte Inhalt vonWie kann ich die Ausgabe von Shell-Befehlen als String in Python erfassen und zurückgeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn