Capturar la salida de un programa desde un frontend

Chema Cortés py en ch3m4.org
Lun Mayo 5 00:54:10 CEST 2003


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

El Sáb 03 May 2003 15:38, Carles Sadurní Anguita escribió:

> ¿Cómo se puede capturar la salida de un programa a medida que se
> produce?
>
> ¿Sería mucho pedir que el método fuese independiente del sistema? :-)

Viendo lo que es tu script, estás creando un log de conexiones. Lo más simple 
es que vayas chequeando periódicamente el tamaño del fichero y, cuando 
cambie, lees lo que se haya añadido. Te pongo el código en Tkinter:

#!/usr/bin/env python

import sys,os
import time
from Tkinter import *
from ScrolledText import ScrolledText

class LogViewer(Frame):
    def __init__(self, parent, filename):
        Frame.__init__(self,parent,relief=RIDGE, borderwidth=20)
        self.filename = filename
        self.file = open(filename, 'r')
        self.text = ScrolledText(parent)
        self.text.pack(fill=BOTH)
        data = self.file.read()
        self.size = len(data)
        self.text.insert(END, data)
        self.after(100, self.poll)

    def poll(self):
        if os.path.getsize(self.filename) > self.size:
            data = self.file.read()
            self.size = self.size + len(data)
            self.text.insert(END, data)
            self.text.see(END)
        self.after(100,self.poll)

if __name__ == "__main__":
    # Usage: LogViewer <logfile>
    root = Tk()
    viewer = LogViewer(root, sys.argv[1])
    viewer.mainloop()


- --
Chema Cortes (py en ch3m4.org)
  http://py.ch3m4.org
    PGPKEY: mailto:pgpkey en ch3m4.org?subject=__PGPKEY__
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)

iD8DBQE+tZoTHLTQrABk8H0RAj8EAJ48gEpAxscR1+7NZkkQvVil5Is4dgCeMQKX
nPf6FerwJLrobgtBuyps4qk=
=1bgd
-----END PGP SIGNATURE-----




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