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!