使用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代码等,但没有一个工作。机会是,他们应该这样做,但我做错了 - 我不工作,我的意思是,尽管“右键”被按下,但我永远不会得到“耶”。

在此先感谢!

+0

的可能的复制[用于读取按键的Python方法?(https://*.com/questions/12175964/python-method-for-reading-keypress) – Chris

+0

当然试验的一种方式是打印当按下特定键时,getch()会返回值。 – holdenweb

之前,应预先考虑b所希望的关键,即:

char = char = msvcrt.getch() 
if char == b"\r": 
    print("yay") 
else: 
    print("nope") 

Python 3.3 documentation状态:

字节的文字总是以 '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'