从命令行启动的程序中按键的非阻塞无缓冲检测?

2024-04-18 17:44:26 发布

您现在位置:Python中文网/ 问答频道 /正文

首先让我说,我知道这个问题与this one非常相似,但不同

为了描述我想要实现的目标,我将把我正在尝试做的事情与getkey library的这个工作示例进行比较:

from getkey import getkey, keys
from time import sleep
sleep(2)
print "Start"
key = getkey(blocking=False)
while key != "m":
    if key == keys.UP:
        print "UP"
    else:
        print key
    sleep(2)
    print "Next..."
    key = getkey(blocking=False)
print "End"

这段代码所做的几乎就是我想要实现的。“唯一”的区别是,我只想在执行读取键盘的命令时,按下键时检测。然而,在本例中,在sleep()过程中按下的所有键都将被缓冲,随后会逐个检测到是否真的不可能在“当前时间”检查按键,例如在80年代的ZX频谱上使用INKEY$(从Basic读取键盘)或IN A, #1F(从m/c读取凯普斯顿操纵杆)


Tags: keyfromimportfalse目标sleep键盘keys