[pyar] Leer teclado sin bloquear el proceso

Ivan Alejandro ivanalejandro0 en gmail.com
Mie Ago 11 21:32:36 ART 2010


2010/8/11 Jose Luis Dallapiccola <jldalla en gmail.com>:
> Hola, muy buenas noches para todos.
>
> Estoy necesitando resolver la siguiente situación:
>
> Tengo un bucle while y, dentro de ahí, necesito saber si se ha pulsado
> alguna tecla, pero sin detener la ejecución del bucle.
> Es esto posible? El caso sería similar al siguiente:
>
> ##### INICIO
>
> # Estoy leyendo un puerto serie
> datos = []
> continuar = True
> while continuar:
>   if ser.inWaiting() > 0:
>       linea = ser.readline().rstrip()
>
>   if linea:
>       datos.append(linea)
>
>   # Aca tendria que ir el código para que cuando se detecte la
> presión de la tecla "-" (por ejemplo) se salga del bucle
>   if TeclaPresionada() == "-":
>       print "Captura finalizada."
>       continuar = False
>
> print "Datos capturados:"
> print datos
>
> ##### FIN
>
> No he encontrado con qué función reemplazar TeclaPresionada. Alguna
> recomendación?
>
> Desde ya muchísimas gracias a todos.
>
Busca en google cosas como: keyboard read non blocking python

De lo que lei podes usar msvcrt (en win$) y select (en linux) o pygame
si queres multiplataforma, aca te paso unos links que explican mejor
esto:

http://stackoverflow.com/questions/292095/polling-the-keyboard-in-python
http://stackoverflow.com/questions/2408560/python-nonblocking-console-input

Sino lo que se me ocurre es que uses threads para la lectura del
puerto, de esta manero no se trabaria (supongo) si pedis algo por
teclado.

Espero que te sirva.
Saludos
-- 
()  ascii ribbon campaign - against html e-mail
/\  www.asciiribbon.org   - against proprietary attachments



More information about the pyar mailing list