Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich die Live-Unterprozessausgabe in Python während der Ausführung anzeigen?

Wie kann ich die Live-Unterprozessausgabe in Python während der Ausführung anzeigen?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-30 05:36:27379Durchsuche

How can I display live subprocess output in Python while it's executing?

Live-Ausgabe von Unterprozessen während der Ausführung anzeigen

Bei der Verwendung von Unterprozessen in Python-Skripten kann es frustrierend sein, auf den Abschluss eines Prozesses zu warten, bevor man auf seine Ausgabe zugreift. Besonders deutlich wird dies bei langwierigen Prozessen. Daher muss eine Möglichkeit gefunden werden, die Ausgabe während ihrer Generierung kontinuierlich anzuzeigen.

Um dies zu erreichen, können Sie die Iter-Funktion verwenden, um Zeilen unmittelbar nach der Ausgabe durch den Befehl zu verarbeiten. Das folgende Codebeispiel zeigt einen häufigen Anwendungsfall:

<code class="python">from __future__ import print_function # Only Python 2.x
import subprocess

def execute(cmd):
    popen = subprocess.Popen(cmd, stdout=subprocess.PIPE, universal_newlines=True)
    for stdout_line in iter(popen.stdout.readline, ""):
        yield stdout_line 
    popen.stdout.close()
    return_code = popen.wait()
    if return_code:
        raise subprocess.CalledProcessError(return_code, cmd)

# Example
for path in execute(["locate", "a"]):
    print(path, end="")</code>

Mit dieser Methode können Sie die Ausgabe eines Prozesses während der Ausführung effektiv streamen, sodass Sie nicht mehr auf seinen Abschluss warten müssen.

Das obige ist der detaillierte Inhalt vonWie kann ich die Live-Unterprozessausgabe in Python während der Ausführung anzeigen?. 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