Además de threads y process también hay programación asíncrona. Si lo vas a hacer con el comando, yo creo que lo mejor es usar io_add_watch como ya te han recomendado: www.pygtk.org/pygtk2tutorial/sec-MonitoringIO.html De este modo el propio gestor de eventos de pygtk se encarga de llamar a tu función cada vez que haya datos que leer en stdout
No necesitas más que definir la función, crear el subproceso, y asignar dicha función como callback del stdout del subproceso, y el gtk.main() se encarga de todo. Por si no andas fino con el inglés te lo traduzco-resumo source_id = gobject.io_add_watch(source, condition, callback) source es el fileno del stdout subprocess condition es gobject.IO_IN (porque quieres leer) callback es la función que se encargará de leer cuando haya datos que leer la función callback sera del estido de def input_callback(source, condition): donde source es el fileno del stdout del subprocess y a condition puedes ignorarle, pues en tu caso siempre sera IO_IN OJO debes devolver True para que callback sea llamado la próxima vez que lleguen datos a stdout. Y no hace falta andar con seeks ni nada, puesto que stdout es un pipe, una vez que lees los datos desaparecen. El jue, 27-01-2011 a las 10:13 -0500, Tony Peña escribió: > vale, ya andaba por thread a ver si me resultaba pero estube pensando > tambien otra opcion que quizas sea otra via es que: > > podria abrir el fichero antes de ejecutar el proceso y ponerle un > seek(0) > como posicion inicial, ejecutar con el thread el proceso, y mientras > esta > escribiendo el seek comience a ir parseando > y hacer un recorrido hasta donde se vaya creando mientras se parsea > como > 2das cosas que debe hacer, y luego seguir recorriendo el fichero > con el mismo seek > eso podria resolver tambien? > > vaya es algo tan sencillo como cualquiera que manda a hacer algo en > bash y > le mande la salida a un log y por otro lado este el tail -f mirando el > log > que se ve como avanza cuando sucede algo y sino se queda esperando > hasta que > le pasen el Ctrl C entiendes? > > bueno eso mismo pero en python > > saludos _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/