Problem: Führen Sie Shell-Befehle aus und erfassen Sie deren Ausgabe als Zeichenfolge, unabhängig von Erfolg oder Misserfolg.
Lösung:
In modernen Versionen von Python (3.5 oder höher), verwenden Sie die Funktion subprocess.run mit dem Flag stdout=subprocess.PIPE:
import subprocess result = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE) output = result.stdout.decode('utf-8')
Verwenden Sie in älteren Versionen von Python (3-3.4) die Funktion subprocess.check_output:
import subprocess output = subprocess.check_output(['ls', '-l'])
Für komplexere Szenarien mit Eingaben in den Befehl oder Fehlerbehandlung verwenden Sie die Klasse subprocess.Popen mit der Kommunikationsmethode:
import subprocess p = subprocess.Popen(['ls', '-a'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) output, error = p.communicate()
Das obige ist der detaillierte Inhalt vonWie kann ich die Ausgabe von Shell-Befehlen als String in Python erfassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!