Podproces programu Python C zawiesza się w „for line in iter”

Ok, więc próbuję uruchomić program C ze skryptu Pythona. Obecnie używam programu testowego C:

#include <stdio.h>

int main() {
while (1) {
    printf("2000\n");
    sleep(1);
}
return 0;
}

Aby symulować program, którego będę używał, który nieustannie pobiera odczyty z czujnika. Następnie próbuję odczytać dane wyjściowe (w tym przypadku"2000") z programu C z podprocesem w Pythonie:

#!usr/bin/python
import subprocess

process = subprocess.Popen("./main", stdout=subprocess.PIPE)
while True:
    for line in iter(process.stdout.readline, ''):
            print line,

ale to nie działa. Korzystając z instrukcji drukowania, uruchamia polecenie.Popen linia czeka nafor line in iter(process.stdout.readline, ''):, dopóki nie wcisnę Ctrl-C.

Dlaczego to? To jest dokładnie to, co większość przykładów, które widziałem, ma jako swój kod, a jednak nie odczytuje pliku.

Edytować:

Czy istnieje sposób na uruchomienie go tylko wtedy, gdy jest coś do przeczytania?

questionAnswers(3)

yourAnswerToTheQuestion