在 Python 中检测键击

  1. 在 Python 中使用 Python 中的 keyboard 模块检测键击
  2. 在 Python 中使用 Python 中的 pynput 模块检测键击

如果你需要访问键盘等输入设备等硬件,Python 中的一些模块可以让你的生活变得更加轻松。使用这样的模块,你可以轻松地执行你想要的任务,而无需处理系统的复杂性。

在本文中,你将学习如何使用 Python 中的模块来检测按键。在 Python 中用于检测按键的模块有很多,其中,最受欢迎和使用最广泛的两个模块是 keyboardpynput

在 Python 中使用 Python 中的 keyboard 模块检测键击

keyboard 模块允许我们完全控制键盘,并带有各种预定义的方法供我们选择。这些方法使我们更容易使用键盘,并检测用户在键盘上的物理按键。

要安装 keyboard 模块,请在命令提示符或终端内执行以下命令。

pip3 install keyboard

首先,你必须将 keyboard 模块导入到程序中。这里,我们使用 Python 中的三个方法来检测按键,分别是 read_key()is_pressed()on_press_key()

import keyboard

while True:
    if keyboard.read_key() == "p":
        print("You pressed p")
        break

while True:
    if keyboard.is_pressed("q"):
        print("You pressed q")
        break
        
keyboard.on_press_key("r", lambda _:print("You pressed r"))

输出:

You pressed p
You pressed q
You pressed r

read_key() 会读取用户在键盘上按下的键,如果是你想要的那个键,在本例中是 p,它会打印出你按过 p 的信息。read_key() 函数返回一个字符。

is_pressed() 函数接收一个字符作为输入,如果它与用户按下的键相匹配,它将返回 True,否则返回 False

on_press_key() 需要两个参数作为输入,第一个是字符,第二个是函数。如果用户按下了与 on_press_key() 函数第一个参数指定的键相匹配的键,它只会执行你作为第二个参数传递进来的函数。

在 Python 中使用 Python 中的 pynput 模块检测键击

pynput 模块是用来检测和控制输入设备的,主要是鼠标和键盘。但在本教程中,你将只看到如何使用这个模块来检测键盘上的按键。在使用这个模块之前,你首先要用下面的命令安装它。

pip3 install pynput

要使用这个模块来检测按键,你首先要从 pynput 模块中导入 Keyboard

from pynput import keyboard

def on_press(key):
    try:
        print('Alphanumeric key pressed: {0} '.format(
            key.char))
    except AttributeError:
        print('special key pressed: {0}'.format(
            key))

def on_release(key):
    print('Key released: {0}'.format(
        key))
    if key == keyboard.Key.esc:
        # Stop listener
        return False

# Collect events until released
with keyboard.Listener(
        on_press=on_press,
        on_release=on_release) as listener:
    listener.join()

输出:

Alphanumeric key pressed: a 
Key released: 'a' 
Alphanumeric key pressed: b
Key released: 'b'
special key pressed: Key.ctrl_l 
Key released: Key.ctrl_l

请注意,上面的输出可能会根据用户按下的按键而有所不同。

为了检测按键,我们定义了两个函数,on_presson_release。当用户按下键盘上的某个按键时,函数 on_press 将被执行,当用户释放该按键时,on_release 函数将被执行。

这两个函数都只是将用户按下和释放的按键打印到控制台窗口中。你可以根据自己的需求改变这两个函数的实现方式。

然后在最后,我们有一个侦听器,它将监听键盘事件,并相应地执行 on_presson_release 函数。

相关文章 - Python Input

  • 在 Python 中检查输入是否为整数
  • 如何在 Python 中读取 stdin 中的输入内容