Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich die Prozessausgabe von „subprocess.call()' in Python abrufen?

Wie kann ich die Prozessausgabe von „subprocess.call()' in Python abrufen?

Barbara Streisand
Freigeben: 2024-11-30 04:26:17
Original
111 Leute haben es durchsucht

How Can I Retrieve Process Output from `subprocess.call()` in Python?

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)
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage