Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich die Ausgabe von Shell-Befehlen als String in Python erfassen und zurückgeben?
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:
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!