Python2.7中的contextlib.redirect_stdout

时间:2017-05-28 10:22:59

标签: python redirectstandardoutput

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

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

提前致谢

1 个答案:

答案 0 :(得分:3)

如果您不担心重新使用相同的上下文管理器对象,那么这样的事情就可以完成。

import sys
import contextlib

@contextlib.contextmanager
def redirect_stdout(target):
    original = sys.stdout
    sys.stdout = target
    yield
    sys.stdout = original