在 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,它會列印出 You pressed 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 中如何將使用者輸入讀取為整數