保存屏幕上打印的内容-python

时间:2018-10-02 18:58:30

标签: python python-2.7

有什么方法可以将屏幕上显示的内容保存到变量中,以便在擦除屏幕后可以将其打印回来?

1 个答案:

答案 0 :(得分:2)

不知道为什么这个问题被否决。无论如何,来自Raymond Hettinger on Twitter的答案利用了contextlib.redirect_stdout()

with open('help.txt', 'w') as f:
    with contextlib.redirect_stdout(f):
        help(pow)

尽管如此,在这种情况下,输出将被重定向到文件中,而不是变量中,并且是Python3,而不是2.7。

从文档中将其捕获到变量中:

  

例如,通常将help()的输出发送到sys.stdout。您可以通过将输出重定向到io.StringIO对象来捕获该输出为字符串:

f = io.StringIO()
with redirect_stdout(f):
    help(pow)
s = f.getvalue()

This answer on SO显示了另一种方法,并且在Python2中: