Python2.7中的contextlib.redirect_stdout

Mat*_*tan 6 python redirectstandardoutput

我使用Python2.7,并且需要以下函数:contextlib.redirect_stdout。我的意思是,我想重定向特定功能(而不是整个程序)的输出。问题是-只有Python3支持“ context.redirect_stdout”,而没有Python2.7。

有人知道如何在Python2.7中使用相同的功能或实现相同的想法吗?

提前致谢

小智 7

如果您不担心重复使用相同的上下文管理器对象,这样的事情应该可以完成这项工作。

import sys
import contextlib

@contextlib.contextmanager
def redirect_stdout(target):
    original = sys.stdout
    try:
        sys.stdout = target
        yield
    finally:
        sys.stdout = original
Run Code Online (Sandbox Code Playgroud)