Need guidelines to show results of a process

bieffe62 at bieffe62 at
Fri Mar 20 10:53:01 CET 2009

On Mar 20, 1:00 am, Vizcayno <vizcay... at> wrote:
> Hi:
> I wrote a Python program which, during execution, shows me messages on
> console indicating at every moment the time and steps being performed
> so I can have a 'log online' and guess remaining time for termination,
> I used many 'print' instructions to show those messages, i.e.  print
> "I am in step 4 at "+giveTime() .... print "I am in step 5 at
> "+giveTime(), etc.
> Now I need to execute the same program but from a GUI application. I
> must show the same messages but on a "text field".
> As you can guess, it implies the changing of my program or make a copy
> and replace the print instructions by   textField += "I am in step 4
> at "+giveTime() then textField += "I am in step 5 at "+giveTime(),
> etc.
> I wanted to do the next:
> if output == "GUI":
>     textField += "I am in step 4 at "+giveTime()
>     force_output()
> else:
>     print "I am in step 4 at "+giveTime()
> But it is not smart, elegant, clean ... isn't it?
> Any ideas please?
> Regards.

If you have many sparse print and you don't want to change all by
you can try redirecting sys.stdout (and maybe sys.stderr) to something
that collects the output and make it available for display however you
like it. The only requirement is that your sys.output replacement
have a 'write' method wich accept a string parameter.
I did it once I needed to quickly add a GUI (Tkinter) to a console-
program, and it worked well.

IIRC the wxPython toolkit does that by default, unless you tell it
and displays any output/error in a default dialog window.


More information about the Python-list mailing list