El dom, 21-02-2010 a las 22:39 +0100, Eduardo Ferro escribió:
> Buenas.
> 
> Necesito poder filtrar la salida por consola de una función a la que
> llamo, sin que esta función se vea alterada. Es para una especie de
> interprete de comandos, que puede tener en un momento dado activados
> filtros  o no, o tener activado un pager o no. 
> Para que se me entienda bien, si tengo la siguiente función:
> 
> def func1():
>     for num in range(100):
>         print num
> 
> Cuando ejecute la función saldrian las 100 lineas numeradas, pero si
> la llamo y tengo configurado un paginador, quisiera que se parase cada
> 25 lineas y esperase una tecla, o si tengo puesto un filtro para que
> salgan las lineas que contengan un "1", sólo quiero que salgan esas
> lineas....
> 
> Ahora mismo lo tengo hecho con un objeto que simula ser un fichero de
> salida y que hace las funciones de filtro, y lo que hago es cambiar el
> sys.stdout por ese objeto, antes de realizar la llamada, y restaurarlo
> una vez completada la llamada. Algo similar a:
> 
> inicial = sys.stdout
> sys.stdout = FiltroSalida()
> func1()
> sys.stdout = inicial
> 
> El caso es que estoy teniendo algunos problemas con la implementación
> de  la clase FiltroSalida y en algunos casos creo que pierdo algo de
> la salida...

También tienes que tener en cuenta la salida de error, sys.stderr. Lo
mismo lo que se te escapa es eso.

Attachment: signature.asc
Description: Esta parte del mensaje está firmada digitalmente

_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a