subprocess.Popen.stdout - чтение stdout в режиме реального времени (снова)

Опять тот же вопрос.
Причина в том, что я все еще не могу заставить его работать после прочтения следующего:

Перехват stdout в реальном времени из другого процесса в PythonПерехват stdout подпроцесса во время его работыКак получить информацию в режиме реального времени из подпроцесса. Открыть в python (2.5)ловить стандартный вывод в реальном времени из подпроцесса

В моем случае у меня есть консольное приложение, написанное на C, давайте возьмем, например, этот код в цикле:

tmp = 0.0;   
printf("\ninput>>"); 
scanf_s("%f",&tmp); 
printf ("\ninput was: %f",tmp); 

Он постоянно читает некоторые входные данные и записывает некоторые выходные данные.

Мой код на Python для взаимодействия с ним следующий:

p=subprocess.Popen([path],stdout=subprocess.PIPE,stdin=subprocess.PIPE)
p.stdin.write('12345\n')
for line in p.stdout: 
    print(">>> " + str(line.rstrip())) 
    p.stdout.flush() 

До сих пор, когда я читаю формуp.stdout он всегда ожидает завершения процесса и затем выводит пустую строку. Я много чего перепробовал - но результат все тот же.

Я пробовал Python 2.6 и 3.1, но версия не имеет значения - мне просто нужно, чтобы она где-то работала.

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

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