使用python标识按键msvcrt
问题描述:
我想在python中使用msvcrt
模块,但我无法使它工作。
我在Windows 10上,有几个“活动键盘”(我可以将其从azerty
改为qwerty
和东西),并且除了Python3
本身之外没有做/下载任何东西(我说因为也许有一些要求或操作这样做我不知道)。使用python标识按键msvcrt
我想要做的事情很简单 - 按一个键,然后根据按下的键进行操作(所以我需要我的电脑来识别该键)。
我试过用下面的代码:
import msvcrt
while 1: #is that necessary?
char = msvcrt.getch()
if char == ??? #that's what I'm struggling with
print("yay")
else:
print("nope")
我根本不知道如何“呼”我的钥匙。我试过例如'\r'
,char(13)
,ASCII代码等,但没有一个工作。机会是,他们应该这样做,但我做错了 - 我不工作,我的意思是,尽管“右键”被按下,但我永远不会得到“耶”。
在此先感谢!
答
之前,应预先考虑b
所希望的关键,即:
char = char = msvcrt.getch()
if char == b"\r":
print("yay")
else:
print("nope")
字节的文字总是以 'b' 或 'B' 前缀;它们会生成字节类型的实例,而不是str类型。它们可能只包含ASCII字符;数值为128或更大的字节必须用转义符表示。
在按下希望的键后,您可以通过查看msvcrt.getch()
的输出自行检查。
>>> msvcrt.getch() # I pressed Enter
b'\r'
>>> msvcrt.getch() # I pressed SPACE
b' '
>>> msvcrt.getch() # I pressed BACKSPACE
b'\x08'
的可能的复制[用于读取按键的Python方法?(https://*.com/questions/12175964/python-method-for-reading-keypress) – Chris
当然试验的一种方式是打印当按下特定键时,getch()会返回值。 – holdenweb