Keypress detection

后端 未结 2 1218
清歌不尽
清歌不尽 2020-12-11 13:06

I\'ve been trying to get keypresses to be detected in a Python program. I want to find a way to do this without using Tkinter, curses, or raw_input

相关标签:
2条回答
  • 2020-12-11 13:28

    Python has a keyboard module with many features. Install it, perhaps with this command:

    pip3 install keyboard
    

    Then use it in code like:

    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
    

    You can set multiple Key Detection:

    if keyboard.is_pressed('a') or keyboard.is_pressed('b') or keyboard.is_pressed('c'):
        #then do this
    
    0 讨论(0)
  • 2020-12-11 13:40

    I took the liberty of editing your question slightly so it makes sense and has an answer, at least on Windows. (IDLE only interacts with your keyboard by means of the tkinter interface to tk.) On Windows, the answer is to use the msvcrt module's console io functions

    import msvcrt as ms
    
    while True:
        if ms.kbhit():
            print(ms.getch())
    

    For other systems, you will have to find the equivalent system-specific calls. For posix systems, these may be part of curses, which you said you did not to use, but I do not know.

    These functions do not work correctly when the program is run is run from IDLE in its default mode. The same may be true for other graphics-mode IDEs.

    0 讨论(0)
提交回复
热议问题