[Python-es] Detección de pulsación de una tecla
Tomás Javier Robles Prado
tjavier en usuarios.retecal.es
Mie Sep 11 18:48:54 CEST 2002
Hola a todos,
¿Alguien sabe si existe en Python alguna función estilo keypressed de Pascal?
while not tecla_pulsada() :
instrucción 1
instruccion 2
...
Esa es la idea. Busco una solución para Unix/Linux, pero si existe una
multiplataforma, mucho mejor. Me sugirieron cosas como
def parada():
cant = os.fstat(sys.stdin.fileno())[stat.ST_SIZE]
if cant > 0:
return 1
else:
return 0
o
import termios, sys, os
fd = sys.stdin.fileno()
old = termios.tcgetattr(fd)
new = termios.tcgetattr(fd)
new[3] = new[3] & ~termios.ICANON & ~termios.ECHO
new[6][termios.VMIN] = 1
new[6][termios.VTIME] = 0
termios.tcsetattr(fd, termios.TCSANOW, new)
s = '' # We'll save the characters typed and add them to the pool.
try:
while 1:
c = os.read(fd, 1)
print "Got character", `c`
s = s+c
finally:
termios.tcsetattr(fd, termios.TCSAFLUSH, old)
pero ninguna de las dos sirven. Quizá una combinación de ambas... ¿alguna
idea?
Gracias
--
Un saludo,
T. Javier Robles Prado tjavier en usuarios.retecal.es
http://users.servicios.retecal.es/tjavier
Más información sobre la lista de distribución Python-es