[Python-es] duda con subprocess.Popen

tny a.porrua en gmail.com
Jue Ene 27 11:29:53 CET 2011


El problema es que yo uso mi propia librería de procesos basada en
eventos, y aún no la tengo integrada con el sistema de eventos de pygtk.

En tu caso y pensandolo mejor no necesitas otro proceso, y además
hacerlo a pelo sería demasiado complicado.
Con un trhead es suficiente y no necesitas ni sockets ni serializar los
datos.

Para el hilo
http://docs.python.org/library/threading.html#thread-objects

Para recorrer los directorios
http://docs.python.org/library/os.html#os.walk

Para recojer lo datos que necesites (fecha, tamaño, propietario...)
http://docs.python.org/library/os.path.html 

Para pasar los datos del thread que recore los directorios al thread
principal no hay que hacer muchos malabarismos:
- Puedes o bien usar directamente la lista, el diccionario o el objeto
que sea, con la única precaución de utilizar locks en donde sea
necesario.
Por ejemplo que un thread modifique una lista mientras otro thread esta
iterándola puede ser peligroso.
- Más fácil aún pues te evitas cualquier problema de estos, es que el
thread hijo provoque un evento que el thread padre procesará cuando le
toque. De modo que sólo es el proceso padre el que accede a dicho
diccionario, lista o lo que sea.

Siento no serte de mayor ayuda.
Hace mucho que no toco threads ni pygtk. 
  


El mié, 26-01-2011 a las 07:22 -0500, Tony Peña escribió:
> podrias poner un ejemplo claro? y corto para poder asociarlo a lo que
> tengo?
> 
> gracias
> 
> El 26 de enero de 2011 04:12, tny <a.porrua en gmail.com> escribió:
> 
> > El mar, 25-01-2011 a las 14:50 -0400, Tony Peña escribió:
> > > disculpen es el mismo correo pero
> > >
> > > ...... necesito ir parseando ese fichero _no_ luego _sino_
> mientras lo
> > > va
> > > creando una onda como que en lo que se va desarrollando yo irle
> > > haciendo un
> > > tail -f al fichero que el subprocess(cmd) esta ejecutando...pero
> > > dentro de
> > > python para usarlo contra el objeto....
> > > eso :)
> > >
> >
> > Yo no usaría ls, yo lo haría desde python, en un proceso hijo que me
> > escribiese en un socket AF_UNIX o en un pipe los datos que necesito
> > según los va adquiriendo.
> > La ventaja es que te evitas esperar por buffers, y también te evitas
> > tener que parsear el texto, porque enviarías directamente un
> diccionario
> > (o una tupla) serializado con pickle.
> >



Más información sobre la lista de distribución Python-es