睡觉时忽略python中的键盘输入

睡觉时忽略python中的键盘输入,python,input,keyboard,sleep,Python,Input,Keyboard,Sleep,我有一个循环的代码,请求一些输入,然后休眠一段时间。其目的是防止人为错误,迫使用户在输入下一个输入之前等待。 问题是,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.s

我有一个循环的代码,请求一些输入,然后休眠一段时间。其目的是防止人为错误,迫使用户在输入下一个输入之前等待。 问题是,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()会记住这些字符,循环将一直运行到末尾。我希望在睡眠中按下的每个字符都被忽略。我该怎么做呢?

很抱歉我之前发布了错误的答案(虽然我已经删除了),这是您所要求的人类层面的问题

程序线程是唯一进入睡眠状态的事件,当键盘进程仍在运行时,它显然会在从睡眠状态恢复后记录所有输入和输入。


这无法通过这种方式实现

这是一个依赖于操作系统的问题,对于windows,我使用以下方法:

它只是捕获所有输入,然后再要求用户输入新的输入,希望能有所帮助

import msvcrt
import time

time.sleep(4)
while msvcrt.kbhit():
    flush = input()
entry = input("Press enter!")