Python 检查输入是否在标准输入上可用,超时
我有一个python脚本,它将从stdin读取的消息发布到网络中的消息队列中。但是,如果在指定的时间内管道上没有任何消息,我必须发送心跳信号 因此,我必须区分3种情况: 管道上有可以处理的输入 在指定的时间内没有输入 管道流程已经关闭,我们可以优雅地终止。 目前,我的代码如下所示:Python 检查输入是否在标准输入上可用,超时,python,Python,我有一个python脚本,它将从stdin读取的消息发布到网络中的消息队列中。但是,如果在指定的时间内管道上没有任何消息,我必须发送心跳信号 因此,我必须区分3种情况: 管道上有可以处理的输入 在指定的时间内没有输入 管道流程已经关闭,我们可以优雅地终止。 目前,我的代码如下所示: import sys for i, line in enumerate(sys.stdin): connection.publish(line) connection.close() 但是,我需要中断查看是
import sys
for i, line in enumerate(sys.stdin):
connection.publish(line)
connection.close()
但是,我需要中断查看是否有任何超时。也就是说,sys.stdin有一段时间没有提供任何数据
import sys
import select
while True:
try:
if select.select([sys.stdin,],[],[],2.0)[0]:
line = sys.stdin.next()
print "Got:", line
else:
print "No data for 2 secs"
except StopIteration:
print 'EOF!'
break
这就是我最后想到的