按键检测

时间:2016-04-11 16:32:52

标签: python keyboard

我一直试图在Python程序中检测到按键。我想在不使用Tkinter,cursesraw_input的情况下找到一种方法。这就是我要去的地方:

while True:
    if keypressed==1:
        print thekey

有谁知道这是怎么回事?

2 个答案:

答案 0 :(得分:5)

Python有一个keyboard模块,具有许多功能。安装它,也许使用此命令:

pip3 install keyboard

然后在代码中使用它:

import keyboard #Using module keyboard
while True:#making a loop
    try: #used try so that if user pressed other than the given key error will not be shown
        if keyboard.is_pressed('a'): #if key 'a' is pressed 
            print('You Pressed A Key!')
            break #finishing the loop
        else:
            pass
    except:
        break #if user pressed other than the given key the loop will break

您可以设置多个密​​钥检测:

if keyboard.is_pressed('a') or keyboard.is_pressed('b') or keyboard.is_pressed('c'):
    #then do this

答案 1 :(得分:1)

我冒昧地稍微编辑你的问题所以它是有道理的并且有答案,至少在Windows上。 (IDLE只通过tk的tkinter接口与键盘交互。)在Windows上,答案是使用msvcrt module's console io functions

import msvcrt as ms

while True:
    if ms.kbhit():
        print(ms.getch())

对于其他系统,您必须找到等效的系统特定呼叫。对于posix系统,这些可能是诅咒的一部分,你说你没有使用它,但我不知道。

运行程序时,这些函数无法正常运行,在默认模式下从IDLE运行。对于其他图形模式IDE也是如此。