在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] :我没有想到使用“超时”这个词。这就是为什么我无法在谷歌上获得结果的原因。