我正在尝试从管道中读取行并进行处理,但我做了一些傻事,无法弄清楚具体是什么。生成器将会不断地产生行,就像这样:
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 shell中使用python producer.py | python consumer.py
运行此代码时,它会一直休眠(好像永远也不会收到数据?)看起来问题可能是生产者从未终止,因为如果我发送有限数量的数据,则正常工作。
如何使消费者接收并显示数据?在实际应用中,生产者是一个我无法控制的C++程序。