Подпроцесс программы Python C зависает на «для строки в iter»

Хорошо, яЯ пытаюсь запустить программу на C из сценария Python. В настоящее время я 'используя тестовую программу C:

#include 

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

Чтобы смоделировать программу, которую я буду использовать, которая постоянно считывает показания датчика. Затем я'я пытаюсь прочитать вывод (в этом случае"2000") из программы на C с подпроцессом в python:

#!usr/bin/python
import subprocess

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

но это не работает. Используя операторы print, он запускает.Popen линия затем ждет вfor line in iter(process.stdout.readline, ''):До тех пор, пока я не нажму Ctrl-C.

Почему это? Это именно то, что большинство примеров, которые ямы видели, как их код, и все же он не читает файл.

Редактировать:

Есть ли способ заставить его работать только тогда, когда есть что почитать?

Ответы на вопрос(3)

Ваш ответ на вопрос