gpt4 book ai didi

python - 检查输入是否在 stdin 上可用并超时

转载 作者:太空宇宙 更新时间:2023-11-04 00:41:59 31 4
gpt4 key购买 nike

我有一个 python 脚本,用于将从标准输入读取的消息发布到网络中的消息队列中。但是,如果在指定的时间内管道上没有任何消息,我必须发送心跳。

所以我必须区分 3 种情况:

  1. 管道上有可以处理的输入
  2. 在指定的时间内没有输入
  3. 管道进程已经关闭,我们可以优雅地终止。

目前,我的代码如下所示:

import sys
for i, line in enumerate(sys.stdin):
connection.publish(line)
connection.close()

但是,如果有任何超时,我需要中断 for look。 IE。 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

关于python - 检查输入是否在 stdin 上可用并超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41521072/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com