Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich die Ausgabe eines Unterprozesses effizient als String in Python speichern?

Wie kann ich die Ausgabe eines Unterprozesses effizient als String in Python speichern?

Linda Hamilton
Linda HamiltonOriginal
2024-12-06 15:21:15836Durchsuche

How Can I Efficiently Store Subprocess Output as a String in Python?

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!

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