Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich die Ausgabe eines subprocess.Popen-Aufrufs als String in Python erfassen und speichern?

Wie kann ich die Ausgabe eines subprocess.Popen-Aufrufs als String in Python erfassen und speichern?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-04 19:07:14335Durchsuche

How Can I Capture and Store the Output of a subprocess.Popen Call as a String in Python?

Ausgabe des Subprocess.Popen-Aufrufs in einem String speichern

In der Python-Programmierung können Sie mit dem Subprocess-Modul Systemaufrufe ausführen und erfassen ihre Ausgabe. Dieser Artikel bietet Lösungen zum Speichern der Ausgabe eines subprocess.Popen-Aufrufs in einer String-Variablen.

Lösung für Python 2.7 oder Python 3

Python stellt den subprocess.check_output bereit ()-Funktion, die speziell zum Erfassen der Ausgabe eines Befehls in einer Zeichenfolge entwickelt wurde. Verwenden Sie es einfach wie folgt:

from subprocess import check_output
out = check_output(["ntpq", "-p"])

Lösung für Python 2.4-2.6

Für die Python-Versionen 2.4 bis 2.6 können Sie die Kommunikationsmethode von Popen verwenden:

import subprocess
p = subprocess.Popen(["ntpq", "-p"], stdout=subprocess.PIPE)
out, err = p.communicate()

Die Out-Variable im obigen Code enthält das Gewünschte Ausgabe.

Hinweis zur Befehlseingabe

Bei der Verwendung von Popen ist es wichtig, den Befehl als Liste von Zeichenfolgen zu übergeben, wie in den bereitgestellten Beispielen gezeigt. Dies liegt daran, dass Popen die Shell nicht aufruft.

Das obige ist der detaillierte Inhalt vonWie kann ich die Ausgabe eines subprocess.Popen-Aufrufs als String in Python erfassen und speichern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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