Am 28.04.2011 13:14, schrieb Chris Rebert:
import a, b, sys
def c():
orig_stdout = sys.stdout
sys.stdout = open('my_log_file.log', 'w')
a.a()
b.b()
sys.stdout.close()
sys.stdout = orig_stdout
Someone may have written a with-statement context manager that
abstracts away the swapping.
@contextlib.contextmanager
def swap_stdout(target):
orig_stdout = sys.stdout
sys.stdout = target
try:
yield target
finally:
sys.stdout = orig_stdout
In this case, I can use all kinds of files (open() files, StringIO
objects etc.), and can re-use them if necessary, in order to
prepend/append data.
Closing can happen additionally, if the user wants.
Thomas
--
http://mail.python.org/mailman/listinfo/python-list