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

时间:2017-12-30 13:18:27

标签: 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.sleep()期间连续按某些字符时,msvcrt.getch()会记住它们并且循环运行到结尾。我希望在睡眠期间按下的每个角色都会被忽略。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

很抱歉我以前发过的错误答案(因为我已经删除了),这是你要求的人类问题。

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

这不能以这种方式实现

答案 1 :(得分:0)

这是一个与操作系统有关的问题,对于Windows,我使用以下命令:

import msvcrt
import time

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

它只是在要求用户提供新输入之前捕获所有输入,希望对您有所帮助!

相关问题