Steven D'Aprano wrote: > >>> import sys, StringIO > >>> SAVEOUT = sys.stdout > >>> capture = StringIO.StringIO() > >>> sys.stdout = capture > >>> print "hello" > >>> > > But be warned, I've had difficulty restoring stdout > afterwards, and needed to exit the interactive > interpreter to get things back to normal.
If you had difficulty, perhaps knowing about sys.__stdout__ would have helped... (?) There's no need to preserve the original sys.stdout as you do above (in simple scripts, anyway) since Python does it for you. (Yes, in a library routine such as unittest you might need to do it in case the calling code has already modified it, but I doubt that's relevant in the OP's case.) -Peter -- http://mail.python.org/mailman/listinfo/python-list