Una pregunta simple, y otra no tanto

Marcos Sánchez Provencio rapto en arrakis.es
Mie Jun 4 17:30:45 CEST 2003


El fichero con las indentaciones bien (funciona dabuten, lo he probado). 
Ojo que hay que probarlo desde un emulador de terminal, no desde SciTE 
ni cualquier IDE.

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 --"
> 
> 
> 

------------ próxima parte ------------
An embedded and charset-unspecified text was scrubbed...
Name: xx.py
URL: <http://mail.python.org/pipermail/python-es/attachments/20030604/fe80290f/attachment.ksh>
------------ 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