Detectar pulsaciones de teclas en Python
-
Detectar la pulsación de teclas en Python usando el módulo
keyboard
en Python -
Detectar la pulsación de teclas en Python usando el módulo
pynput
en Python
Si necesita acceso al hardware como dispositivos de entrada como el teclado, hay módulos disponibles en Python que pueden hacer su vida mucho más fácil. Con dichos módulos, puede realizar fácilmente la tarea que desee sin tener que lidiar con las complejidades del sistema.
En este artículo, aprenderá a detectar pulsaciones de teclas utilizando módulos en Python. Hay muchos módulos que se utilizan para detectar pulsaciones de teclas en Python, y de los cuales, los dos módulos más populares y ampliamente utilizados son keyboard
y pynput
.
Detectar la pulsación de teclas en Python usando el módulo keyboard
en Python
El módulo keyboard
nos permite tomar el control total del teclado y viene con varios métodos predefinidos para elegir. Estos métodos nos facilitan mucho el trabajo con el teclado y la detección de las pulsaciones físicas del usuario en el teclado.
Para instalar el módulo keyboard
, ejecute el siguiente comando dentro de su símbolo del sistema o terminal.
pip3 install keyboard
Primero, debe importar el módulo keyboard
al programa. Aquí, estamos usando tres métodos para detectar pulsaciones de teclas en Python read_key()
, is_pressed()
y 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"))
Producción :
You pressed p
You pressed q
You pressed r
La read_key()
leerá qué tecla ha pulsado un usuario en el teclado, y si es esa tecla la que querías, en este caso, p
, imprimirá el mensaje You pressed p
. La función read_key()
devuelve un carácter.
El is_pressed()
toma un carácter como entrada, y si coincide con la tecla que ha presionado el usuario, devolverá True
y False
en caso contrario.
on_press_key()
toma dos parámetros como entrada, el primero es el carácter y el segundo es la función. Si el usuario presiona la tecla que coincide con la tecla especificada como primer parámetro de la función on_press_key()
, solo ejecutará la función que ha pasado como segundo parámetro.
Detectar la pulsación de teclas en Python usando el módulo pynput
en Python
El módulo pynput
se utiliza para detectar y controlar dispositivos de entrada, principalmente mouse y teclado. Pero en este tutorial, solo verá cómo usar este módulo para detectar pulsaciones de teclas en el teclado. Antes de usar este módulo, primero debe instalarlo usando el siguiente comando.
pip3 install pynput
Para utilizar este módulo para detectar pulsaciones de teclas, primero debe importar keyboard
desde el módulo 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()
Producción :
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
Tenga en cuenta que la salida anterior puede variar según las teclas que presione el usuario.
Para detectar la pulsación de teclas, estamos definiendo dos funciones, on_press
y on_release
. La función on_press
se ejecutará cuando el usuario presione un botón en el teclado, y tan pronto como el usuario suelte ese botón, se ejecutará la función on_release
.
Ambas funciones solo imprimen las teclas presionadas y liberadas por el usuario en la ventana de la consola. Puede cambiar la implementación de estas dos funciones según sus requisitos.
Luego, al final, tenemos un Listener que escuchará los eventos del teclado y ejecutará las funciones on_press
y on_release
en consecuencia.
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