Una pregunta simple, y otra no tanto
oscar
o.merchan en terra.es
Mie Jun 4 19:54:17 CEST 2003
EUREKA este funciona de puta madre, me mantiene el bucle, sin parar a la
espera del teclado, y encima ya puedo hacer un mini menu para variar la
informacino del bucle como queria.
MIL GRACIAS A TOODOS.
Saluditos, Óscar Merchan.
Nunca te acostaras sin aprender algo nuevo ;-)
El mié, 04-06-2003 a las 16:22, Chema Cortés escribió:
> Marcos Sánchez Provencio escribió:
> > Si no necesitas multihilo (threads) puedes intentarlo también con el
> > módulo select. Éste te permite hacer un bucle de atención a eventos,
> > donde rellenarías los huecos con proceso por tu cuenta.
>
> Esta una buena solución que debería figurar en alguno de los
> repositorios de recetas de python (responde a una de las preguntas más
> frecuentes de python).
>
> El código podría ser algo así:
>
> #!/usr/bin/python
>
> import os, sys
> import tty
> from select import select
>
> class NotTTYException(Exception): pass
>
> class TerminalFile:
> def __init__(self,infile):
> if not infile.isatty():
> raise NotTTYException()
> self.file=infile
>
> #prepare for getch
> self.save_attr=tty.tcgetattr(self.file)
> newattr=self.save_attr[:]
> newattr[3] &= ~tty.ECHO & ~tty.ICANON
> tty.tcsetattr(self.file, tty.TCSANOW, newattr)
>
> def __del__(self):
> #restoring stdin
> import tty #required this import here
> tty.tcsetattr(self.file, tty.TCSADRAIN, self.save_attr)
>
> def getch(self):
> if select([self.file],[],[],0)[0]:
> c=self.file.read(1)
> else:
> c=''
> return c
>
> if __name__=="__main__":
> s=TerminalFile(sys.stdin)
> print "Press q to quit..."
> i=0
> while s.getch()!="q":
> sys.stdout.write("%08d\r"%i)
> i+=1
> print "-- END --"
>
>
> ----
>
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es
Más información sobre la lista de distribución Python-es