【发布时间】:2009-06-08 14:38:32
【问题描述】:
我正在尝试从管道中读取行并对其进行处理,但我正在做一些愚蠢的事情,我不知道是什么。生产者将无限期地继续生产线,如下所示:
生产者.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++ 程序。
【问题讨论】:
标签: python pipe producer-consumer