[Tutor] Ending a script
Chris Fuller
cfuller084 at thinkingplanet.net
Wed Feb 6 18:14:16 CET 2008
On Wednesday 06 February 2008 09:23, Damian Archer wrote:
> When I am running a script in cmd the script runs but the cmd windows
> closes immediately after the script has finished.
>
> Is there anyway I can freeze the cmd window until a user actually closers
> it??
There are numerous ways to do this, the simplest (and least interesting) being
to use raw_input() to prompt the user to hit ENTER.
A more elegant way would be to redirect the text somewhere else, perhaps a GUI
textbox, or even out a network socket to an independent logging process.
This is simple to do in python. All you need is a class with a write()
method. Asign sys.stdout and sys.stderr to an instance of such a class. You
can use the same instance, or treat them seperately.
When the interpreter prints some output, or an exception is raised, the output
will be passed to the write() methods of these objects, and your code can
perform any arbitrary manipulations upon the output that is desired.
Handling exceptions is actually a bit trickier, of course, since the default
action is to terminate the program (although not always if it occurs in a GUI
callback), but there are other uses for sys.stderr. A lot of modules will
display error or warning messages on it, for instance.
There is a bigger caveat: these do not correspond to the stdout and stderr
used by the OS and the underlying C inside the interpreter. Many python
modules wrap C libraries (pygtk, for instance), and the messages displayed at
runtime will not be handled with any python-awareness. You can still
redirect these, but you have to make low-level operating system calls, and
the details differ ever so slightly from standard POSIX systems if you are
suffering under the yoke of Redmond.
The attached program demostrates these concepts, except the nasty lowlevel OS
dependent bit.
Cheers
-------------- next part --------------
A non-text attachment was scrubbed...
Name: redirtk.py
Type: application/x-python
Size: 1398 bytes
Desc: not available
Url : http://mail.python.org/pipermail/tutor/attachments/20080206/52548809/attachment-0001.bin
More information about the Tutor
mailing list