Python: Wie man die Standardausgabe eines Unterprozesses blockierungsfrei liest

Ich versuche ein einfaches Python-Skript zu erstellen, das einen Unterprozess startet und dessen Standardausgabe überwacht. Hier ist ein Ausschnitt aus dem Code:

process = subprocess.Popen([path_to_exe, os.path.join(temp_dir,temp_file)], stdout=subprocess.PIPE)
while True:   
    output=process.stdout.readline()
    print "test"

Das Problem ist, dass das Skript an @ hänoutput=process.stdout.readline() und dass die Linieprint "test" wird erst ausgeführt, nachdem der Unterprozess beendet wurde.

Gibt es eine Möglichkeit, die Standardausgabe zu lesen und zu drucken, ohne auf den Abschluss des Unterprozesses warten zu müssen?

Der Subprozess, den ich starte, ist eine Windows-Binärdatei, für die ich keinen Quellcode habe.

Ich habe mehrere ähnliche Fragen gefunden, aber die Antworten gelten nur für Linux oder für den Fall, dass ich die Quelle des von mir gestarteten Prozesses habe.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage