Rileva la pressione dei tasti in Python
-
Rileva la pressione dei tasti utilizzando il modulo
keyboard
in Python -
Rileva la pressione dei tasti utilizzando il modulo
pynput
in Python
Se hai bisogno di accedere all’hardware come dispositivi di input come la tastiera, ci sono moduli disponibili in Python che possono semplificarti la vita. Utilizzando tali moduli, è possibile eseguire facilmente l’attività desiderata senza occuparsi delle complessità del sistema.
In questo articolo imparerai come rilevare la pressione dei tasti usando i moduli in Python. Ci sono molti moduli usati per rilevare la pressione dei tasti in Python, e di questi, i due moduli più popolari e ampiamente usati sono keyboard
e pynput
.
Rileva la pressione dei tasti utilizzando il modulo keyboard
in Python
Il modulo keyboard
ci permette di avere il pieno controllo della tastiera e viene fornito con vari metodi predefiniti tra cui scegliere. Questi metodi ci rendono molto più facile lavorare con la tastiera e rilevare la pressione dei tasti fisici dell’utente sulla tastiera.
Per installare il modulo keyboard
, esegui il comando seguente all’interno del tuo prompt dei comandi o terminale.
pip3 install keyboard
Per prima cosa, devi importare il modulo keyboard
nel programma. Qui stiamo usando tre metodi per rilevare la pressione dei tasti in Python read_key()
, is_pressed()
e 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"))
Produzione:
You pressed p
You pressed q
You pressed r
Il read_key()
leggerà quale tasto un utente ha premuto sulla tastiera, e se è quel tasto che volevi, in questo caso, p
, stamperà il messaggio You pressed p
. La funzione read_key()
restituisce un carattere.
is_pressed()
prende un carattere come input, e se corrisponde al tasto che l’utente ha premuto, restituirà True
e False
altrimenti.
on_press_key()
accetta due parametri come input, il primo è il carattere e il secondo è la funzione. Se l’utente preme il tasto che corrisponde al tasto specificato come primo parametro della funzione on_press_key()
, eseguirà solo la funzione che hai passato come secondo parametro.
Rileva la pressione dei tasti utilizzando il modulo pynput
in Python
Il modulo pynput
viene utilizzato per rilevare e controllare i dispositivi di input, principalmente mouse e tastiera. Ma in questo tutorial, vedrai solo come utilizzare questo modulo per rilevare la pressione dei tasti sulla tastiera. Prima di utilizzare questo modulo, devi prima installarlo utilizzando il comando seguente.
pip3 install pynput
Per usare questo modulo per rilevare la pressione dei tasti, devi prima importare keyboard
dal modulo pynput
.
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()
Produzione:
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
Notare che l’output di cui sopra può variare a seconda dei tasti premuti dall’utente.
Per rilevare la pressione dei tasti, stiamo definendo due funzioni, on_press
e on_release
. La funzione on_press
verrà eseguita quando l’utente premerà un pulsante sulla tastiera, e non appena l’utente rilascerà quel pulsante, verrà eseguita la funzione on_release
.
Entrambe le funzioni stampano solo i tasti premuti e rilasciati dall’utente nella finestra della console. È possibile modificare l’implementazione di queste due funzioni in base alle proprie esigenze.
Poi, alla fine, abbiamo un Listener che ascolterà gli eventi della tastiera ed eseguirà le funzioni on_press
e on_release
di conseguenza.
Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.
LinkedIn