Rileva la pressione dei tasti in Python

  1. Rileva la pressione dei tasti utilizzando il modulo keyboard in Python
  2. 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.

Articolo correlato - Python Input

  • Come leggere gli input dell'utente come interi in Python
  • Leggi input da Stdin in Python