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 !!!