Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 检查输入是否在标准输入上可用,超时_Python - Fatal编程技术网

Python 检查输入是否在标准输入上可用,超时

Python 检查输入是否在标准输入上可用,超时,python,Python,我有一个python脚本,它将从stdin读取的消息发布到网络中的消息队列中。但是,如果在指定的时间内管道上没有任何消息,我必须发送心跳信号 因此,我必须区分3种情况: 管道上有可以处理的输入 在指定的时间内没有输入 管道流程已经关闭,我们可以优雅地终止。 目前,我的代码如下所示: import sys for i, line in enumerate(sys.stdin): connection.publish(line) connection.close() 但是,我需要中断查看是

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

因此,我必须区分3种情况:

管道上有可以处理的输入 在指定的时间内没有输入 管道流程已经关闭,我们可以优雅地终止。 目前,我的代码如下所示:

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
这就是我最后想到的