si era communicate

gracias por la pista
puff no me fije en el pedacito de aviso ese de hasta no terminar el buffer
no puedo utilizar los std[in|out]

revisare la doc del pygtk para poder ver lo del monitoring IO a ver espero
resolver con eso.
thanxs

tony

El 25 de enero de 2011 12:25, Arnau Sanchez <pyar...@gmail.com> escribió:

> On Tue, 25 Jan 2011 12:08:29 -0400 Tony Peña wrote:
>
> > cmd = "ls -lhR /"
> > subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True).command()[0]
>
> Querías decir communicate(), ¿no?
>
> http://docs.python.org/library/subprocess.html#subprocess.Popen.communicate
>
> "Read data from stdout and stderr, until end-of-file is reached. Wait for
> process to terminate."
>
> O sea, que no te sirve. Lo que tienes que hacer es guardar el objeto popen
> para luego trabajar con él. Ten en cuenta que el simple hecho de
> instanciarlo
> ya arranca el proceso:
>
> popen = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
>
> Ahora por ejemplo podrías hacer popen.stdout.read(), pero esto de nuevo es
> bloqueante. Como dices que estás con pygtk deberías mirarte:
>
> http://www.pygtk.org/pygtk2tutorial/sec-MonitoringIO.html
>
> Con esto deberías ser capaz de ir leyendo la salida de popen.stdout poco a
> poco
> (desde callbacks), y el bucle de eventos del GUI seguirá funcionando sin
> problemas.
>
> arnau
> _______________________________________________
> 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/

Responder a