flamesrock wrote: > I looked at PyCrust, and while its given me a few cool ideas, I may > have described the problem incorrectly. What I really need is not > something that takes input, but merely redirects the 'print' statements > to something like a terminal window. > > Is this even possible without entering the function calls directly into > a pycrust like terminal? Maybe I'm trying to do the wrong thing.
PyCrust would show you a mechanism to get lines of text into a "terminal window". Actually capturing those lines of output is a different story. Here's one approach, if you have control over the print statements: class Redirector: def __init__(self, infoAboutTerminal): # store "infoAboutTerminal" in local attributes def write(self, text): '''output lines of text to terminal window''' # here you do whatever PyCrust does to get output to its window # using the info stored in the constructor Assuming you have a PyCrust-like terminal window open somewhere, you would create a Redirector and pass it whatever info about the terminal window that it might need. terminal = Redirector(infoAboutPyCrustLikeWindow) Then just send your prints to this location using the >> syntax sugar: print >>terminal, 'This line of text goes to the GUI window.' print >>terminal, 'So does all this\neven multiple lines...' If you *don't* have the ability to change the print statements like this, then you can install a Redirector in place of sys.stdout, but that will affect all prints, including those in standard library modules and elsewhere. HTH -Peter -- http://mail.python.org/mailman/listinfo/python-list