[Python-es] duda con subprocess.Popen

Tony Peña emperor.cu en gmail.com
Mar Ene 25 18:09:41 CET 2011


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 <pyarnau en 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 en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20110125/f082adc0/attachment.html>


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