一段时间后等待python如何进行程序

时间:2017-10-09 17:21:18

标签: python time

我有这段代码:

application/x-msexcel

如果程序输入while True: i=input'enter #enter or character:' if not i: break ,则会中断该程序,但如果3秒后它们没有回答,我希望它立即中断。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

Python 3 Timed Input(@mediocrity:如果你喜欢这个结果,也许你可以投票给他答案,因为他必须努力回答这个问题并值得信任)这显示了你正在寻找的一个很好的例子。 / p>

我在这里复制了它:

import time
from threading import Thread

answer = None

def check():
    time.sleep(3)
    if answer != None:
        return
    print "Too Slow"

Thread(target = check).start()

answer = raw_input("Input something: ")

print(answer)

print ("done")

我认为这个答案和你的问题的细微差别你可以自己。

我希望有帮助

编辑:我发现Linux的一些非常酷的东西(我不知道它是否在Windows上运行):http://www.garyrobinson.net/2009/10/non-blocking-raw_input-for-python.html

我知道它还不是你需要的,但我仍然发布它,因为它可能会帮助别人。这就是加里罗宾逊写的:

  

2009年10月17日   Python的非阻塞Raw_input   [编辑于2010年8月30日修复了函数名称中的拼写错误,并且通常会改进格式化]

     

我需要一种方法来允许raw_input()调用超时。如果它对任何人都有用,我写了这个解决方案,它可以在类Unix操作系统下运行。

import signal

class AlarmException(Exception):
    pass

def alarmHandler(signum, frame):
    raise AlarmException

def nonBlockingRawInput(prompt='', timeout=20):
    signal.signal(signal.SIGALRM, alarmHandler)
    signal.alarm(timeout)
    try:
        text = raw_input(prompt)
        signal.alarm(0)
        return text
    except AlarmException:
        print '\nPrompt timeout. Continuing...'
    signal.signal(signal.SIGALRM, signal.SIG_IGN)
    return ''

ans = None
ans = nonBlockingRawInput("Input Something: ", 3)

print ans