【问题标题】:Python Get console output [duplicate]Python获取控制台输出[重复]
【发布时间】:2014-09-02 12:39:10
【问题描述】:

谁能告诉我如何获得与变量相同的程序控制台输出?

例如:

print "this is simple output"
print "and this is another simple output"

ConsOutputs = some_function_to_get_those_strings_from_console()

【问题讨论】:

  • 您为什么要这样做?有几条路线(例如,使用日志记录代替,滚动您自己的 print 函数,更改 stdout),但哪种路线最好取决于您的目标。

标签: python console


【解决方案1】:

您可以将标准输出重定向到您自己的自定义输出对象。您可以在这里获得很多控制权,默认情况下这将停止打印到标准输出。

import sys

class Logger():
    stdout = sys.stdout
    messages = []

    def start(self): 
        sys.stdout = self

    def stop(self): 
        sys.stdout = self.stdout

    def write(self, text): 
        self.messages.append(text)

log = Logger()

log.start()
print "sys"
log.stop()

print log.messages

如果您想同时记录消息并将其打印到标准输出,则必须在 logger 对象的 write 方法中添加更多逻辑。

【讨论】:

  • 非常感谢,它就像一个魅力。再次感谢你:)
猜你喜欢
  • 1970-01-01
  • 2023-02-26
  • 2012-09-28
  • 2016-09-15
  • 1970-01-01
  • 2014-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多