contextlib.redirect_stdout(new_target)
Context manager for temporarily redirecting sys.stdout
to another file or file-like object.
This tool adds flexibility to existing functions or classes whose output is hardwired to stdout.
For example, the output of help()
normally is sent to sys.stdout. You can capture that output in a string by redirecting the output to an io.StringIO
object:
f = io.StringIO() with redirect_stdout(f): help(pow) s = f.getvalue()
To send the output of help()
to a file on disk, redirect the output to a regular file:
with open('help.txt', 'w') as f: with redirect_stdout(f): help(pow)
To send the output of help()
to sys.stderr:
with redirect_stdout(sys.stderr): help(pow)
Note that the global side effect on sys.stdout
means that this context manager is not suitable for use in library code and most threaded applications. It also has no effect on the output of subprocesses. However, it is still a useful approach for many utility scripts.
This context manager is reentrant.
New in version 3.4.
Please login to continue.