Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich die Prozessausgabe von „subprocess.call()' in Python abrufen?
Abrufen der Prozessausgabe von subprocess.call()
In Python-Versionen vor 2.7 das Abrufen der Ausgabe von einem Prozess, der mit subprocess aufgerufen wurde. call() kann eine Herausforderung sein. Die Übergabe eines StringIO.StringIO-Objekts an das stdout-Argument löst einen Fehler aus, da in StringIO-Objekten ein „fileno“-Attribut fehlt.
Lösung
Für Python-Versionen 2.7 und darüber hinaus bietet die Funktion subprocess.check_output eine unkomplizierte Lösung. Es kombiniert die Ausführung eines Unterprozesses mit der Erfassung und Rückgabe seiner Standardausgabe als Zeichenfolge.
Zum Beispiel (unter Linux getestet):
import subprocess output = subprocess.check_output(['ping', '-c', '1', '8.8.8.8']) print(output)
Beachten Sie, dass der Ping-Befehl das verwendet Linux-Notation (-c für count). Ändern Sie es für Windows in -n.
Weitere Einzelheiten finden Sie in der ausführlicheren Antwort in diesem [anderen Beitrag](https://stackoverflow.com/a/5647266/6214952).
Das obige ist der detaillierte Inhalt vonWie kann ich die Prozessausgabe von „subprocess.call()' in Python abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!