当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python contextlib.redirect_stdout用法及代码示例


用法:

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.org大神的英文原创作品 contextlib.redirect_stdout。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。