Capture output from stderr
Grant Edwards
grante at visi.com
Tue Aug 5 23:47:10 EDT 2003
More information about the Python-list mailing list
Tue Aug 5 23:47:10 EDT 2003
- Previous message (by thread): Capture output from stderr
- Next message (by thread): Capture output from stderr
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
In article <mailman.1060136229.29900.python-list at python.org>, Jeff Epler wrote: >> I've always used a read handler for this in the past, and it worked fine. >> I don't have an example handy... I was about to look up my example program, but you beat me to it. ;) > Here's a little program I just put together, it shows the output from a > command in a scrolling text area, using popen and > _tkinter.createfilehandler. [...] > import Tkinter, _tkinter, fcntl, os, sys > > p = os.popen(command, "r") > pf = p.fileno() > > # Make reads from the popen'd command nonblocking > # (so read returns the bytes available without waiting) > fcntl.fcntl(pf, fcntl.F_SETFL, os.O_NONBLOCK) > > > def readfunc(fileobj, event_type): > bytes = p.read() I always use os.read(pf) rather than the file object's read method to gaurd against cases where the file descriptor is readable when the file object isn't. I don't know if that ever really happens, but it seemed to be the safe thing to do. I suspect that your setting the file descriptor to non-blocking accomplishes the same thing. > if bytes == '': > bytes = "***END OF OUTPUT***" > t.wm_title("%s - COMPLETED - tktail" % command) > _tkinter.deletefilehandler(p) [...] > _tkinter.createfilehandler(p, Tkinter.READABLE, readfunc) > t.mainloop() -- Grant Edwards grante Yow! I need "RONDO". at visi.com
- Previous message (by thread): Capture output from stderr
- Next message (by thread): Capture output from stderr
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list