Ausgabe von C-Programm auf stdout mit Python-Unterprozess erfassen? Erwarten Sie?

Ich möchte die Ausgabe eines C-Programms erfassen, das ich so starte:

p = subprocess.Popen(["make", "run_pci"],
                     stdout=subprocess.PIPE,
                     cwd="/home/ecorbett/hello_world_pthread")
for ln in p.stdout:

Das einzige Problem ist, dass ich erst dann eine Ausgabe erhalte, wenn das C-Programm fertig ist. Tatsächlich muss ich die Ausgabe Zeile für Zeile abrufen, während das Programm ausgeführt wird. Und um die Sache noch komplizierter zu machen, muss ich jede Zeile analysieren (ich benötige nur bestimmte Daten von Zeilen).

Hier ein Beispiel für eine Ausgabe: (Ich muss "Thread on Tile #" erfassen.)

blahblah blah Thread blahblah blah tile 1: On 
blahblah blah Thread blahblah blah tile 2: OFF 
blahblah blah Thread blahblah blah tile 3 : Disable

Mir ist aufgefallen, dass der Artikel, den ich unten verlinkt habe, dasselbe Problem zu haben scheint. Ich habe versucht herauszufinden, wie ich es an meine Situation anpassen kann.

Echtzeit-Ausgabe von ffmpeg zur Verwendung in der Fortschrittsanzeige abrufen (PyQt4, stdout)

Python-Neuling, Beispielcode wird sehr geschätzt !!!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage