Wie führe ich einen Shell-Befehl in Python aus und fange die Ausgabe auf?
In Python kann man das subprocess
Modul verwenden, um Shell-Befehle auszuführen und deren Ausgabe aufzufangen. Hier ist ein Beispiel dafür, wie man die Funktion subprocess.run()
verwenden kann, um den Befehl 'ls' auszuführen und die Ausgabe aufzufangen:
import subprocess
result = subprocess.run(['ls','-l'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output = result.stdout.decode('utf-8')
print(output)
Man kann auch subprocess.check_output()
verwenden, welches eine vereinfachte Version von run()
ist, es gibt die Ausgabe als Bytes zurück und wirft eine CalledProcessError
Ausnahme aus, wenn der Befehl einen nicht-null Exit-Status zurückgibt.
import subprocess
output = subprocess.check_output(['ls','-l'])
print(output.decode('utf-8'))
In beiden Fällen wird die Ausgabe in der Variablen output
gespeichert, die man dann bearbeiten oder ausgeben kann wie gewünscht.