我正在尝试从管道中读取行并对其进行处理,但我正在做一些愚蠢的事情,我不知道是什么。生产者将无限期地继续生产线,如下所示:
生产者.py
import time
while True:
print 'Data'
time.sleep(1)
消费者只需要定期检查线路:
消费者.py
import sys, time
while True:
line = sys.stdin.readline()
if line:
print 'Got data:', line
else:
time.sleep(1)
当我在 Windows shell as 中运行它时python producer.py | python consumer.py
,它只是永远休眠(似乎从不获取数据?)似乎问题在于生产者永远不会终止,因为如果我发送有限数量的数据,那么它就可以正常工作。
如何获取要接收的数据并显示给消费者?在实际应用程序中,生产者是我无法控制的 C++ 程序。