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

Wie kann ich die Prozessausgabe von subprocess.call() abrufen?

Linda Hamilton
Freigeben: 2024-11-28 18:30:10
Original
642 Leute haben es durchsucht

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

Abrufen der Prozessausgabe von Subprocess.call()

Die Methode subprocess.call() ist ein vielseitiges Dienstprogramm zum Ausführen von Befehlen und zum Ausführen von Prozessen in einem separaten Thread. Während sein Hauptzweck darin besteht, einen Prozess zu starten, ohne auf seinen Abschluss zu warten, kann es Fälle geben, in denen Sie Zugriff auf die Ausgabe des ausgeführten Prozesses benötigen. Dieser Artikel zielt darauf ab, diesem Bedarf gerecht zu werden, indem er die Techniken zum effektiven Abrufen der Ausgabe von subprocess.call() untersucht.

Nutzung von subprocess.check_output()

Für Python-Versionen 2.7 und höher das Subprocess-Modul bietet eine vereinfachte Lösung für diese Aufgabe: subprocess.check_output(). Diese Methode dient speziell dazu, die Standardausgabe aus einem Prozessaufruf zu extrahieren und als Zeichenfolge zurückzugeben.

Betrachten Sie das folgende Beispiel:

import subprocess

output = subprocess.check_output(["ping", "-c", "1", "8.8.8.8"])
Nach dem Login kopieren

In diesem Szenario initiiert der Ping-Befehl einen einfachen Ping-Anfrage an die angegebene IP-Adresse. Die Ausgabe dieses Ping-Vorgangs wird erfasst und in der Ausgabevariablen als Zeichenfolge gespeichert.

Umgang mit spezifischen Ausgabeanforderungen

In bestimmten Situationen benötigen Sie möglicherweise eine detailliertere Kontrolle über die Verarbeitung der Prozessausgabe . In solchen Fällen können Sie die folgenden Techniken anwenden:

  • stdout- und stderr-Argumente: Übergeben Sie beim Aufruf von subprocess.call() StringIO-Objekte für stdout- und stderr-Argumente. Dadurch können Sie die Standardausgabe und den Standardfehler des Prozesses in diesen Objekten erfassen.
  • Kommunikation mit dem Prozess: Verwenden Sie die Methode „communic()“ von Popen-Objekten, um mit dem laufenden Prozess zu interagieren . Dadurch können Sie Eingaben an den Prozess senden und sowohl dessen Standardausgabe als auch Standardfehlerströme abrufen.

Fazit

Durch die Verwendung der oben genannten Techniken können Sie die Ausgabe effektiv abrufen und verarbeiten von Prozessen, die mit subprocess.call() initiiert wurden. Unabhängig davon, ob Sie eine unkomplizierte Möglichkeit benötigen, über subprocess.check_output() eine Standardausgabe zu erhalten, oder eine detailliertere Kontrolle über die Ausgabeverwaltung benötigen, können Sie mit diesen Methoden Ihre Anforderungen erfüllen.

Das obige ist der detaillierte Inhalt vonWie kann ich die Prozessausgabe von subprocess.call() 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