将键盘按键绑定到函数 - Python KeyListener

kil*_*579 3 python key-bindings listener python-3.x

“您已按下 Enter 键!”

每当我按下 Key(z) 时,应该执行该函数:

#Pseudocode:
bind(<Enter>, function_x)
Run Code Online (Sandbox Code Playgroud)

我目前正在开发一个Python程序,它将在一个恒定的循环中运行。它仅在控制台上运行(无 GUI),但我仍然需要能够随时与程序交互,而无需程序请求输入。

kil*_*579 5

几个模块解决了这个问题

平输入 ( pip install pynput)

用于处理和控制通用输入的简单模块

from pynput import keyboard
from pynput.keyboard import Key

def on_press(key):
    #handle pressed keys
    pass

def on_release(key):
    #handle released keys
    if(key==Key.enter):
        function_x()

with keyboard.Listener(on_press=on_press,on_release=on_release) as listener:
    listener.join()
Run Code Online (Sandbox Code Playgroud)

(参见pynput 文档


键盘pip install keyboard

用于模拟和处理键盘输入的简单模块

keyboard.add_hotkey('enter', lambda: function_x())
Run Code Online (Sandbox Code Playgroud)

(请参阅键盘文档


特金特

集成 UI 模块,可以跟踪焦点线程上的输入

from tkinter import Tk
root = Tk() #also works on other TK widgets
root.bind("<Enter>", function_x)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

请注意:这些解决方案都以某种方式使用线程。开始监听按键后,您可能无法执行其他代码。

有用的线程: KeyListenersBinding in Tkinter

欢迎添加更多解决方案