【问题标题】:Save what was printed on the screen保存屏幕上打印的内容
【发布时间】:2019-03-07 22:59:21
【问题描述】:

有什么方法可以将print 发送到屏幕的内容保存到变量中,这样我就可以在擦除屏幕后将其打印回来?

【问题讨论】:

  • 如果您在屏幕上打印,您应该已经存储了它。你能指定屏幕上的信息是从哪里来的吗?
  • 你试过什么?如果你展示你的尝试和情况,它会更容易提供帮助。
  • 你在说什么屏幕?请提供更多详细信息。
  • 可能这就是你要找的东西:stackoverflow.com/questions/5309978/…

标签: python output-redirect


【解决方案1】:

不知道为什么这个问题被否决。无论如何,来自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 中:

【讨论】:

  • 很好的答案,much to learn:直到现在我还是手动完成了print(..., file=f)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多