subprocess.Popen.stdout - чтение stdout в режиме реального времени (снова)
Опять тот же вопрос.
Причина в том, что я все еще не могу заставить его работать после прочтения следующего:
В моем случае у меня есть консольное приложение, написанное на 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, но версия не имеет значения - мне просто нужно, чтобы она где-то работала.