在python中,仅在有限的时间内请求用户输入

在python中,仅在有限的时间内请求用户输入,python,input,timedelay,Python,Input,Timedelay,我正在处理的程序需要暂停并要求用户输入,如果没有输入,请继续执行该程序。我想它会像这样: import time ...[code to run before break]... if input in time.sleep(5): [break out of normal code] else: [return to normal code] [code to run after break]... 有什么想法吗 编辑:我问的时候没有想到这一点,但我正在运行Win

我正在处理的程序需要暂停并要求用户输入,如果没有输入,请继续执行该程序。我想它会像这样:

import time 

...[code to run before break]...

if input in time.sleep(5):
    [break out of normal code]
else:
    [return to normal code] 

 [code to run after break]...
有什么想法吗


编辑:我问的时候没有想到这一点,但我正在运行Windows(8.1)

有点快,但很有效。以下程序等待用户输入5秒钟或直到收到输入,以先发生的为准

from datetime import datetime, timedelta
import os
import signal
import threading
import time

waiting = False

def wait_and_kill(timeout):
    elapsed = timedelta(0)
    while elapsed.total_seconds() < timeout and waiting:
        start = datetime.now()
        time.sleep(0.1)
        elapsed += datetime.now() - start
    if waiting:
        os.kill(os.getpid(), signal.SIGINT)

try:
    t = threading.Thread(target=wait_and_kill, args=(5,))
    waiting = True
    t.start()
    raw = raw_input('> ')
    waiting = False
except KeyboardInterrupt:
    pass
从datetime导入datetime,timedelta
导入操作系统
输入信号
导入线程
导入时间
等待=错误
def wait_和_kill(超时):
已用时间=时间增量(0)
经过时。总秒数()<超时和等待:
start=datetime.now()
睡眠时间(0.1)
已用时间+=datetime.now()-开始
如果正在等待:
kill(os.getpid(),signal.SIGINT)
尝试:
线程(目标=等待和杀死,args=(5,)
等待=真
t、 开始()
原始=原始输入(“>”)
等待=错误
除键盘中断外:
通过

Google是你的编码朋友。。。[1] :我没有想到使用“超时”这个词。这就是为什么我无法在谷歌上获得结果的原因。