[Python-es] Ejecutar comandos python/glade

Jesus Suarez suarezmolina17 en gmail.com
Jue Nov 20 15:19:07 CET 2014


Buenos dias, estimados

Les escribo para solicitarles ayuda, estoy nuevo en programación bajo
python gtk usando Glade, mi problema es el siguiente mi app captura un
comando a través de un entry lo ejecuta y muestra el output en un textview,
para esto utilizo el siguiente codigo:

self.text_buffer = Gtk.TextBuffer()
                     url = self.entry1.get_text()
                     self.comando = "ping"
                     self.comando2 = str(self.comando)+" "+str(url)
                     tmpout = NamedTemporaryFile(mode='w+')
                     p = Popen(self.comando2, stdout=PIPE, stderr=PIPE,
shell=True)
                     pstdout, pstderr = p.communicate()
                     tmpout.write(pstdout)
                     tmpout.seek(0)
                     tmpout.read()
                     self.text_buffer.set_text(str(pstdout))
                     self.textview.set_buffer(self.text_buffer)

Esto funciona perfecto, el problema es que no me lo muestra en tiempo real
si no que espera a que finalice para mostrarlo, lo que trae como
consecuencia que si el comando no finaliza se bloquea la app, ejemplo:
ping google.com -c 4 (limite) funciona
ping google.com (sin limite) bloquea la app

La idea es que presente resultados en tiempo real no al finalizar.

espero contar con su ayuda, un abrazo.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20141120/4dd00b02/attachment.html>


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