teclas tecla reconocimiento pulsada hacer detectar python python-2.7 keypress detect

pulsada - python hacer reconocimiento de teclas



¿Detectar tecla pulsar en python? (6)

Como OP menciona sobre raw_input, eso significa que él quiere una solución cli. Linux: curses es lo que quieres (Windows PDCurses). Curses, es una API gráfica para el software cli, puede lograr más que solo detectar eventos clave.

Este código detectará las teclas hasta que se presione una nueva línea.

import curses def main(win): win.nodelay(True) key="" win.clear() win.addstr("Detected key:") while 1: try: key = win.getkey() win.clear() win.addstr("Detected key:") win.addstr(str(key)) if key == os.linesep: break except Exception as e: # No input pass curses.wrapper(main)

Estoy haciendo un programa tipo cronómetro en Python y me gustaría saber cómo detectar si se presiona una tecla (como p para pausa y s para detener), y no me gustaría que fuera algo así como raw_input que espera el Entrada del usuario antes de continuar la ejecución. Alguien sabe cómo hacer esto en un bucle mientras?

Además, me gustaría hacer esta multiplataforma, pero si eso no es posible, entonces mi principal objetivo de desarrollo es Linux



Para Windows puedes usar msvcrt así:

import msvcrt while True: if msvcrt.kbhit(): key = msvcrt.getch() print(key) # just to show the result


Para aquellos que están en Windows y estaban luchando por encontrar una respuesta que funcione, aquí está la mía: pynput

from pynput.keyboard import Key, Listener def on_press(key): print(''{0} pressed''.format( key)) def on_release(key): print(''{0} release''.format( key)) if key == Key.esc: # Stop listener return False # Collect events until released with Listener( on_press=on_press, on_release=on_release) as listener: listener.join()

La función anterior imprimirá la tecla que esté presionando y comenzará una acción cuando suelte la tecla ''esc''. La documentación del teclado está here para un uso más variado.


Python tiene un módulo de keyboard con muchas características. Instálalo, quizás con este comando:

pip3 install keyboard

Entonces utilízalo en código como:

import keyboard #Using module keyboard while True:#making a loop try: #used try so that if user pressed other than the given key error will not be shown if keyboard.is_pressed(''q''):#if key ''q'' is pressed print(''You Pressed A Key!'') break#finishing the loop else: pass except: break #if user pressed a key other than the given key the loop will break


Utilice PyGame para tener una ventana y luego puede obtener los eventos clave.

Para la letra p :

import pygame, sys import pygame.locals pygame.init() BLACK = (0,0,0) WIDTH = 1280 HEIGHT = 1024 windowSurface = pygame.display.set_mode((WIDTH, HEIGHT), 0, 32) windowSurface.fill(BLACK) while True: for event in pygame.event.get(): if event.key == pygame.K_p: #Do what you want to here pass if event.type == pygame.locals.QUIT: pygame.quit() sys.exit()