我有一个循环的代码要求输入一些然后睡一段时间。目的是防止人为错误,迫使用户在进入下一个输入之前等待。 问题是,python在time.sleep时不会忽略键盘输入。
以下是一个示例代码:
from time import sleep
from msvcrt import getch
for i in range(3):
print 'Enter a character'
char = getch()
sleep(2)
print char
在time.sleep()期间连续按某些字符时,msvcrt.getch()会记住它们并且循环运行到结尾。我希望在睡眠期间按下的每个角色都会被忽略。我怎么能这样做?
答案 0 :(得分:1)
很抱歉我以前发过的错误答案(因为我已经删除了),这是你要求的人类问题。
程序线程是唯一可以进入休眠状态的事件,而键盘进程仍在运行,显然它会在从睡眠状态恢复后记录所有输入和类型。
这不能以这种方式实现
答案 1 :(得分:0)
这是一个与操作系统有关的问题,对于Windows,我使用以下命令:
import msvcrt import time time.sleep(4) while msvcrt.kbhit(): flush = input() entry = input("Press enter!")
它只是在要求用户提供新输入之前捕获所有输入,希望对您有所帮助!