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