


Wie erreicht man eine Echtzeitausgabe eines Unterprozesses in Python?
Echtzeitausgabe mit Unterprozess
Beim Versuch, ein Wrapper-Skript mit einer Fortschrittsanzeige zu erstellen, sind Sie auf eine Herausforderung gestoßen, bei der die Ausgabe vom Wrapper abgebrochen wurde Das Programm wurde trotz Verwendung von subprocess.Popen mit stdout=PIPE gepuffert. Wie Sie festgestellt haben, wurde das Problem weder durch Setzen von bufsize auf 1 oder 0 noch durch die Verwendung einer Ausgabeschleife gelöst.
Lösung: Verwendung von readline
Zufälligerweise sind wir auf eine Problemumgehung gestoßen: unter Verwendung der readline-Methode der stdout-Pipe. Im Gegensatz zur for-Schleifenmethode, die Sie ursprünglich verwendet haben und die aggressiv puffert, zeigt die mit readline erweiterte while True-Schleife das gewünschte Verhalten.
<br>while True:<br> line = p.stdout. readline()<br> wenn nicht line: break<br> ...<br>
Grundlegendes Problem
Dieses Problem ist auf einen bekannten Fehler in Python zurückzuführen, der als Problem 3907 verfolgt wird. Die spezifische Ursache von Die anomale Pufferung ist nicht gut verstanden.
Fazit
Durch die Nutzung der Readline-Methode können Sie eine Echtzeitausgabe von über Unterprozesse gestarteten Programmen erreichen, ohne auf veraltete oder möglicherweise unsichere Techniken wie exec* zurückgreifen zu müssen . Diese Problemumgehung bleibt in Python-Versionen nach 3.x wirksam und gewährleistet so die Aufwärtskompatibilität.
Das obige ist der detaillierte Inhalt vonWie erreicht man eine Echtzeitausgabe eines Unterprozesses in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

So verwenden Sie Python, um die ZiPF -Verteilung einer Textdatei zu finden

So herunterladen Sie Dateien in Python

Wie benutze ich eine schöne Suppe, um HTML zu analysieren?

Wie man mit PDF -Dokumenten mit Python arbeitet

Wie kann man mit Redis in Django -Anwendungen zwischenstrichen

Einführung des natürlichen Sprach -Toolkits (NLTK)

Wie führe ich ein tiefes Lernen mit Tensorflow oder Pytorch durch?
