Python:我如何反复获得每次可以超时的用户输入



注意:运行Python 2.7,在MacBook(OSX)上工作

我想查询我的用户输入,但是如果在时间间隔后没有输入,请运行其他内容,然后重试。这是我写的:

import sys, select
def test():
    waittime = 4
    i, o, e = select.select( [sys.stdin], [], [], waittime)
    if i:
        print 'got i'
    else:
        print 'did not get i'
    test()

这样做的是:如果用户不按[返回],等待3秒钟,则打印"没有得到我",请重新运行该功能。如果用户按[返回],如果(i)语句无限期运行。

我想做的事情要做:如果用户按[返回],打印'get i',重新运行函数,请等待用户按返回。如果用户不按返回,请等待三秒钟,打印"没有得到我",请重试。

事先感谢您的任何帮助!-erik

首先,我用多线程解决了这一点,但我想它是舷外的。

import sys,time,select
anidle = 0.0
while True:
    time.sleep(0.01)
    incoming = select.select([sys.stdin],[],[],0.0)[0]
    if len(incoming) > 0:
        anidle = 0.0
        aline = sys.stdin.readline()
        # process the input here
        print 'Input:', aline
        break
    anidle += 0.01
    if anidle > 4:
        # process no input for 4 seconds here
        print 'No input.'
        break

相关内容

  • 没有找到相关文章

最新更新