Re: [Python-es] GtkTextView + popen2 -> Enviar salida de la ejecución de un comando a un TextView.

bameda bameda en gmail.com
Jue Oct 25 19:38:08 CEST 2007


Gracias, esto era lo que necesitaba.

Respecto a lo del subject, no encontraba uno que fuera mas corto y a
la vez descriptivo.

SALUDOS

El 25/10/07, Arnau Sanchez <arnau en ehas.org> escribió:
> bameda escribió:
>
> > Estoy haciendo una interfaz GTK para una determinado COMANDO de
> > terminal en linux.
> > Para recibir su salida lo hago de la siguiente manera:
> >
> > pipes = os.popen2(COMANDO + " \"" + filename + "\"")
>
> A riesgo de hacerme pesado, repito lo de siempre: usa subprocess (bueno,
> bonito, barato):
>
> http://docs.python.org/lib/module-subprocess.html
>
> > text = ""
> > for line in pipes[1].readlines():
> >          text = text + line
>
> Ese bucle no es idiomático.
>
> http://jaynes.colorado.edu/PythonIdioms.html
>
> Textualmente sería:
>
> text = "".join(line for line in pipes[1].readlines()]
>
> Aunque así no puedes leer de una pipe, la bloqueas seguro. Para empezar,
> probaría leyendo sólo una línea (siempre que sepas que hay datos a leer)
>
> > El problema surge cuando el comando en cuestión se queda dentro de un
> > bucle en su ejecución y, evidentemente, no me muestra nada por
> > pantalla.
> > ¿Hay alguna forma de mandar la salida directamente al TextView sin
> > esperar a que el comando termine su ejecución?
>
> Usa subprocess en combinación con gobject.io_add_watch. Ver tutorial:
>
> http://www.pygtk.org/pygtk2tutorial-es/sec-MonitoringIO.html
>
> Si tienes problemas, buscando en google por esas palabras claves
> encontrarás muchos programas que lo hacen, por ejemplo:
>
> http://www.zeroflux.org/proj/pyburn/pyburn
>
> arnau
>
> pd: el subject es un poquito largo, sería mejor algo más sintético para
> que se vea mejor en los archivos...
>
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
>


-- 
____________________________________________
|
|    David Barragán Merino
|    E-mail: bameda en ARROBA@gmail.com
|    Ingeniería Informática
|    Universidad Carlos III Madrid
|____________________________________________


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