Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich die Ausgabe eines subprocess.Popen-Aufrufs in Python effizient erfassen und speichern?
Ausgabe des Unterprozesses.Popen-Aufrufs in einem String speichern
Beim Versuch, einen Systemaufruf mit Python durchzuführen, kann eine Speicherung erforderlich sein die Ausgabe zur späteren Bearbeitung. Die Verwendung von subprocess.Popen allein bietet jedoch keine einfache Methode zum Erfassen der Ausgabe innerhalb einer Zeichenfolge.
Alternative Ansätze
Um dieses Problem zu beheben, ziehen Sie die folgenden Optionen in Betracht :
Python 2.7 oder Python 3
Verwenden Sie die Funktion subprocess.check_output(), die die Befehlsausführung und Ausgabeerfassung vereinfacht:
from subprocess import check_output out = check_output(["ntpq", "-p"])
Python 2.4-2.6
Verwenden Sie die Kommunikationsmethode des Popen Objekt:
import subprocess p = subprocess.Popen(["ntpq", "-p"], stdout=subprocess.PIPE) out, err = p.communicate()
In diesem Fall enthält out die gewünschte Ausgabe.
Hinweis zum Befehlsaufruf
Geben Sie bei Verwendung von Popen die an Befehl als Liste mit dem Befehl und den Optionen, z. B. ["ntpq", "-p"]. Dadurch wird sichergestellt, dass der Befehl korrekt interpretiert wird, da Popen nicht die Shell zur Befehlsausführung verwendet.
Das obige ist der detaillierte Inhalt vonWie kann ich die Ausgabe eines subprocess.Popen-Aufrufs in Python effizient erfassen und speichern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!