Я пытаюсь читать строки из трубы и обрабатывать их, но я делаю что-то глупое, и я не могу понять, что. Продюсер будет продолжать производить линии на неопределенный срок, например:
producer.py
import time
while True:
print 'Data'
time.sleep(1)
Потребителю просто нужно периодически проверять строки:
consumer.py
import sys, time
while True:
line = sys.stdin.readline()
if line:
print 'Got data:', line
else:
time.sleep(1)
Когда я запускаю это в оболочке Windows как python producer.py | python consumer.py
, он просто спит навсегда (никогда, кажется, не получает данные?) Кажется, что проблема заключается в том, что продюсер никогда не заканчивается, поскольку, если я отправлю конечный объем данных то он отлично работает.
Как я могу получить данные, которые будут получены и отображаться для потребителя? В реальном приложении производитель - это программа на С++, над которой я не контролирую.