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/