Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich die Ausgabe eines Unterprozesses effizient als String in Python speichern?
Unterprozessausgabe in einem String speichern
Beim Ausführen von Systemaufrufen in Python ist das Speichern der Ergebnisse in einem String zur weiteren Bearbeitung von entscheidender Bedeutung. In diesem Artikel wird untersucht, wie Sie dies mithilfe von subprocess.Popen in Python effektiv erreichen können.
Betrachten Sie das folgende Beispiel:
import subprocess # Create a Popen object to execute the ntpq command p2 = subprocess.Popen("ntpq -p")
Um die Ausgabe dieses Befehls in einer Zeichenfolge zu speichern, gibt es zwei primäre Ansätze:
Methode 1: subprocess.check_output (Python 2.7 oder Python 3)
Diese Funktion kombiniert Popen mit der Kommunikationsverarbeitung, um die Standardausgabe als Zeichenfolge zurückzugeben.
from subprocess import check_output # Execute the command and store the output in a string out = check_output(["ntpq", "-p"])
Methode 2: kommunizieren (Python 2.4-2.6)
Für ältere Python-Versionen ist die Kommunikationsmethode genutzt.
import subprocess # Create a Popen object with stdout connected to a pipe p = subprocess.Popen(["ntpq", "-p"], stdout=subprocess.PIPE) # Read the stdout output and store it in a string out, err = p.communicate()
Beachten Sie, dass der Befehl als Liste bereitgestellt werden sollte, da Popen die Shell nicht aufruft.
Das obige ist der detaillierte Inhalt vonWie kann ich die Ausgabe eines Unterprozesses effizient als String in Python speichern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!