Détecter la pression de touche en Python

Sahil Bhosale 10 octobre 2023
  1. Détection de la pression des touches en Python à l’aide du module keyboard en Python
  2. Détecter une pression de touche en Python à l’aide du module pynput en Python
Détecter la pression de touche en Python

Si vous avez besoin d’accéder au matériel comme des périphériques d’entrée tels que le clavier, il existe des modules disponibles en Python qui peuvent vous faciliter la vie. En utilisant de tels modules, vous pouvez facilement effectuer la tâche que vous souhaitez sans avoir à gérer les complexités du système.

Dans cet article, vous apprendrez à détecter les pressions sur les touches à l’aide de modules en Python. Il existe de nombreux modules utilisés pour détecter les pressions sur les touches en Python, et parmi lesquels, les deux modules les plus populaires et les plus largement utilisés sont keyboard et pynput.

Détection de la pression des touches en Python à l’aide du module keyboard en Python

Le module keyboard nous permet de prendre le contrôle total du clavier et est livré avec différentes méthodes prédéfinies parmi lesquelles choisir. Ces méthodes nous permettent de travailler beaucoup plus facilement avec le clavier et de détecter les pressions physiques de l’utilisateur sur le clavier.

Pour installer le module keyboard, exécutez la commande ci-dessous dans votre invite de commande ou votre terminal.

pip3 install keyboard

Tout d’abord, vous devez importer le module keyboard dans le programme. Ici, nous utilisons trois méthodes pour détecter les pressions sur les touches en Python read_key(), is_pressed() et 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"))

Production:

You pressed p
You pressed q
You pressed r

Le read_key() lira sur quelle touche l’utilisateur a appuyé sur le clavier, et si c’est cette touche que vous vouliez, dans ce cas, p, il affichera le message You pressed p. La fonction read_key() renvoie un caractère.

Le is_pressed() prend un caractère comme entrée, et s’il correspond à la touche sur laquelle l’utilisateur a appuyé, il retournera True et False sinon.

Le on_press_key() prend deux paramètres comme entrée, le premier est le caractère et le second est la fonction. Si l’utilisateur appuie sur la touche qui correspond à la touche spécifiée comme premier paramètre de la fonction on_press_key(), il n’exécutera que la fonction que vous avez passée en deuxième paramètre.

Détecter une pression de touche en Python à l’aide du module pynput en Python

Le module pynput est utilisé pour détecter et contrôler les périphériques d’entrée, principalement la souris et le clavier. Mais dans ce tutoriel, vous ne verrez que comment utiliser ce module pour détecter les pressions sur le clavier. Avant d’utiliser ce module, vous devez d’abord l’installer à l’aide de la commande ci-dessous.

pip3 install pynput

Pour utiliser ce module pour détecter les pressions sur les touches, vous devez d’abord importer keyboard depuis le module 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()

Production:

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

Notez que la sortie ci-dessus peut varier en fonction des touches enfoncées par l’utilisateur.

Pour détecter les pressions sur les touches, nous définissons deux fonctions, on_press et on_release. La fonction on_press sera exécutée lorsque l’utilisateur appuiera sur un bouton du clavier, et dès que l’utilisateur relâchera ce bouton, la fonction on_release sera exécutée.

Les deux fonctions n’impriment que les touches enfoncées et relâchées par l’utilisateur dans la fenêtre de la console. Vous pouvez modifier l’implémentation de ces deux fonctions en fonction de vos besoins.

Ensuite, à la fin, nous avons un auditeur qui écoutera les événements du clavier, et il exécutera les fonctions on_press et on_release en conséquence.

Sahil Bhosale avatar Sahil Bhosale avatar

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

Article connexe - Python Input