Python等待X秒按键,如果未按则继续执行
我在找一个代码示例,能做到以下几点:
- 显示一条消息,比如“按任意键进行配置,或者等X秒继续”
- 等待,比如说5秒,然后继续执行,或者如果按下了某个键,就进入一个配置的子程序。
5 个回答
2
如果你把time.sleep、threading.Thread和sys.stdin.read这几个东西结合起来,就可以轻松地等待一段时间来获取输入,然后再继续执行后面的代码。
t = threading.Thread(target=sys.stdin.read(1) args=(1,))
t.start()
time.sleep(5)
t.join()
2
Python没有标准的方法来捕捉这个,它只能通过input()和raw_input()来获取键盘输入。
如果你真的想要这样做,可以使用Tkinter或pygame来把按键当作“事件”来捕捉。还有一些特定平台的解决方案,比如pyHook。不过,如果这对你的程序不是绝对必要的,我建议你用其他方式来实现。
25
如果你在使用Unix或Linux系统,那么可以使用
import sys
from select import select
print "Press any key to configure or wait 5 seconds..."
timeout = 5
rlist, wlist, xlist = select([sys.stdin], [], [], timeout)
if rlist:
print "Config selected..."
else:
print "Timed out..."
如果你在使用Windows系统,可以看看
import sys, time, msvcrt
timeout = 5
startTime = time.time()
inp = None
print "Press any key to configure or wait 5 seconds... "
while True:
if msvcrt.kbhit():
inp = msvcrt.getch()
break
elif time.time() - startTime > timeout:
break
if inp:
print "Config selected..."
else:
print "Timed out..."