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.
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/