realmente no es un ls para un fichero y otro proceso listando lo del ls es un ejemplo que puse .. yo digo un proceso con cualquier cosa ue lance un proceso super largo y que este tirando una salida para irla analizando.. puede ser ls puede ser una copia puede ser cualquier evento ..
El 28 de enero de 2011 15:03, Andrey Antoukh <and...@gmail.com> escribió: > No se si me equivoco pero me pregunto si lo que se pretende es > analizar la salida de ls -lloquesea mientras lo va listando... pues no > seria mejor crear una funcion que use os.walk y retorne un > generator... que poco a poco ira devolviendo fichero a fichero, creo > que consigues el mismo efecto sin tener que complicarse tanto... > > Disculpen si me entrometo, y haya dicho algo que no tenga que ver. > > Un saludo. > > El día 28 de enero de 2011 14:24, Tony Peña <emperor...@gmail.com> > escribió: > > ok vale intentare entonces por ahi que es donde mas corto sera el viaje > > entonces cualquier cosa les comento > > > > un abrazo > > > > El 28 de enero de 2011 05:14, tny <a.por...@gmail.com> escribió: > >> > >> 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/ > > > > > > _______________________________________________ > > Python-es mailing list > > Python-es@python.org > > http://mail.python.org/mailman/listinfo/python-es > > FAQ: http://python-es-faq.wikidot.com/ > > > > > > > > -- > http://twitter.com/andsux > http://www.niwi.be > **** > http://www.freebsd.org/ > http://www.postgresql.org/ > http://www.python.org/ > http://www.djangoproject.com/ > > "Linux is for people who hate Windows, BSD is for people who love UNIX" > "Social Engineer -> Because there is no patch for human stupidity" > _______________________________________________ > Python-es mailing list > Python-es@python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ >
_______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/