Я пытаюсь читать строки из канала и обрабатывать их, но я делаю что-то глупое и не могу понять, что. Производитель будет продолжать производить линии до бесконечности, например:
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
, он просто спит вечно (кажется, никогда не получает данные?) Кажется, что, возможно, проблема в том, что производитель никогда не завершает работу, поскольку, если я отправляю конечное количество данных тогда работает нормально.
Как я могу получить данные, которые будут получены и отображены для потребителя? В реальном приложении продюсер - это программа на C ++, которую я не могу контролировать.