用法:
contextlib.redirect_stdout(new_target)
用於臨時將
sys.stdout
重定向到另一個文件或file-like 對象的上下文管理器。該工具為輸出硬連線到標準輸出的現有函數或類增加了靈活性。
例如,
help()
的輸出通常被發送到sys.stdout
。您可以通過將輸出重定向到io.StringIO
對象來捕獲字符串中的輸出。替換流從__enter__
方法返回,因此可用作with
語句的目標:with redirect_stdout(io.StringIO()) as f: help(pow) s = f.getvalue()
要將
help()
的輸出發送到磁盤上的文件,請將輸出重定向到常規文件:with open('help.txt', 'w') as f: with redirect_stdout(f): help(pow)
要將
help()
的輸出發送到sys.stderr
:with redirect_stdout(sys.stderr): help(pow)
請注意,
sys.stdout
的全局副作用意味著此上下文管理器不適合在庫代碼和大多數線程應用程序中使用。它對子流程的輸出也沒有影響。但是,對於許多實用程序腳本來說,它仍然是一種有用的方法。這個上下文管理器是可重入的。
3.4 版中的新函數。
相關用法
- Python contextlib.AsyncContextDecorator用法及代碼示例
- Python contextlib.AsyncExitStack用法及代碼示例
- Python contextlib.ExitStack.pop_all用法及代碼示例
- Python contextlib.aclosing用法及代碼示例
- Python contextlib.ExitStack用法及代碼示例
- Python contextlib.contextmanager用法及代碼示例
- Python contextlib.closing用法及代碼示例
- Python contextlib.nullcontext用法及代碼示例
- Python contextlib.ContextDecorator用法及代碼示例
- Python contextlib.suppress用法及代碼示例
- Python contextvars.ContextVar.reset用法及代碼示例
- Python contextvars.Context.run用法及代碼示例
- Python configparser.ConfigParser.readfp用法及代碼示例
- Python configparser.ConfigParser.BOOLEAN_STATES用法及代碼示例
- Python configparser.BasicInterpolation用法及代碼示例
- Python configparser.ExtendedInterpolation用法及代碼示例
- Python configparser.ConfigParser.SECTCRE用法及代碼示例
- Python configparser.ConfigParser.read用法及代碼示例
- Python collections.somenamedtuple._replace用法及代碼示例
- Python collections.somenamedtuple._asdict用法及代碼示例
注:本文由純淨天空篩選整理自python.org大神的英文原創作品 contextlib.redirect_stdout。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。