Przechwytywanie danych wyjściowych z programu C na stdout przy użyciu podprocesu Pythona? Pexpect?

Chcę przechwytywać dane wyjściowe z programu C, który uruchamiam w ten sposób:

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

Jedynym problemem jest to, że nie otrzymuję danych wyjściowych, dopóki program C nie zostanie ukończony, kiedy w rzeczywistości muszę uzyskać wyjście wiersz po wierszu, gdy program jest uruchomiony. Aby jeszcze bardziej skomplikować sprawę, muszę przeanalizować każdą linię (potrzebuję tylko pewnych danych z linii).

Na przykład, oto przykładowy przykład: (Muszę przechwycić „Wątek na kafelku #”)

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

Zauważyłem, że artykuł, który podłączyłem poniżej, wydaje się mieć ten sam problem. Próbowałem zrozumieć, jak dostosować go do mojej sytuacji?

Wykorzystanie wyjścia ffmpeg w czasie rzeczywistym do użycia w pasku postępu (PyQt4, stdout)

Newbie Pythona, więc przykładowy kod jest bardzo mile widziany !!!

questionAnswers(2)

yourAnswerToTheQuestion