Subprocesso do programa Python C trava em “para linha em iter”

Ok, então estou tentando executar um programa em C a partir de um script python. Atualmente estou usando um programa C de teste:

#include <stdio.h>

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

Para simular o programa que vou usar, que faz leituras de um sensor constantemente. Então eu estou tentando ler a saída (neste caso"2000") do programa C com subprocesso em python:

#!usr/bin/python
import subprocess

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

Mas isto não está funcionando. A partir do uso de instruções de impressão, ele executa.Popen&nbsp;linha então aguardafor line in iter(process.stdout.readline, ''):, até pressionar Ctrl-C.

Por que é isso? Isso é exatamente o que a maioria dos exemplos que eu vi tem como código, e ainda não lê o arquivo.

Editar:

Existe uma maneira de fazê-lo funcionar apenas quando há algo a ser lido?