Need guidelines to show results of a process

bieffe62 at gmail.com bieffe62 at gmail.com
Fri Mar 20 10:53:01 CET 2009


On Mar 20, 1:00 am, Vizcayno <vizcay... at gmail.com> 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
hand,
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
shall
have a 'write' method wich accept a string parameter.
I did it once I needed to quickly add a GUI (Tkinter) to a console-
based
program, and it worked well.

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

Ciao
----
FB



More information about the Python-list mailing list