capturar salida consola

Jaime Perea jaime en iaa.es
Mie Feb 9 12:46:08 CET 2005


El Miércoles, 9 de Febrero de 2005 11:40, Felipe Botet escribió:
> Hola Marcos,
> pues sí, he leído este hilo y me ayudó, pero efectivamente solo salía
> la salida al final.....

Yo esto lo hize con una thread paralela y un fifo (named pipe). Es 
relativamente sencillo:

en la shell hacemos

mkfifo prueba_fifo

y ejecutamos el siguiente fichero python

import os
import sys

f = os.open('prueba_fifo',os.O_RDWR)

while 1:
    txt = os.read(f,19200)
    print txt
    if txt[0:4] == 'exit':
        sys.exit()

ahora si en un terminal ejecutas este código
se queda colgado esperando a leer de ese fifo
y todo lo redirijas  al fifo es leido 

a saber, si en otro terminal  haces

ls > prueba_fifo

te lee la salida estándar de ls
si haces

echo exit > prueba_fifo 

paras el programa 

con lo que ya tienes una idea más o menos
de como se debe de hacer. Mi código creaba
los fifos (uno de salida, éste y otro de entrada que
le enviaba instrucciones al programa) y mandaba una 
thread que iba leyendo sin parar y mandando a una 
ventana, era tkinter.


-- 

           Jaime D. Perea Duarte. <jaime at iaa dot es>
             Linux registered user #10472

           Dep. Astrofisica Extragalactica.
           Instituto de Astrofisica de Andalucia (CSIC)
           Apdo. 3004, 18080 Granada, Spain. 




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