Détecter la pression de touche en Python
-
Détection de la pression des touches en Python à l’aide du module
keyboard
en Python -
Détecter une pression de touche en Python à l’aide du module
pynput
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 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