El subproceso del programa Python C se cuelga en "for line in iter"

Ok, estoy intentando ejecutar un programa en C desde un script de python. Actualmente estoy usando un programa de prueba C:

#include <stdio.h>

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

Para simular el programa que usaré, que toma lecturas de un sensor constantemente. Entonces estoy tratando de leer la salida (en este caso"2000") del programa C con subproceso en python:

#!usr/bin/python
import subprocess

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

Pero esto no está funcionando. De usar sentencias impresas, ejecuta el.Popen la línea entonces espera enfor line in iter(process.stdout.readline, ''):, hasta que presione Ctrl-C.

¿Por qué es esto? Esto es exactamente lo que la mayoría de los ejemplos que he visto tienen como su código y, sin embargo, no lee el archivo.

Editar:

¿Hay alguna forma de hacerlo funcionar solo cuando hay algo que leer?

Respuestas a la pregunta(3)

Su respuesta a la pregunta