HOWTO · Python
在 Python 中檢測鍵擊
本教程提供了一個如何在 Python 中檢測鍵擊的演示。
本頁內容
如果你需要訪問鍵盤等輸入裝置等硬體,Python 中的一些模組可以讓你的生活變得更加輕鬆。使用這樣的模組,你可以輕鬆地執行你想要的任務,而無需處理系統的複雜性。
在本文中,你將學習如何使用 Python 中的模組來檢測按鍵。在 Python 中用於檢測按鍵的模組有很多,其中,最受歡迎和使用最廣泛的兩個模組是 keyboard 和 pynput。
在 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_press 和 on_release。當使用者按下鍵盤上的某個按鍵時,函式 on_press 將被執行,當使用者釋放該按鍵時,on_release 函式將被執行。
這兩個函式都只是將使用者按下和釋放的按鍵列印到控制檯視窗中。你可以根據自己的需求改變這兩個函式的實現方式。
然後在最後,我們有一個偵聽器,它將監聽鍵盤事件,並相應地執行 on_press 和 on_release 函式。