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