Buenas... 2010/2/21 Daniel Garcia Moreno <d...@danigm.net>
> 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. > Creo que no estaba teniendo en cuenta el sys.stderr, y quizás me este generando salida que se esté mezclando con la que proceso. Gracias por la sugerencia, le echaré un ojo a ese tema saludos -- Hasta otra!!! Eduardo Ferro Aldama Alea Soluciones http://www.alea-soluciones.com http://oss.alea-soluciones.com http://doc.alea-soluciones.com
_______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/