【问题标题】:How to print AND redirect print content into a file? [duplicate]如何打印并将打印内容重定向到文件中? [复制]
【发布时间】:2014-04-10 10:25:43
【问题描述】:

我知道如何将标准输出重定向到文件中:

import sys
sys.stdout = open('log.txt', 'w')
print 'test'

这将创建一个log.txt,其中将写入test。 但是,test 不会打印在标准输出中。

如何在终端和文件中打印和重定向test,而不更改程序中的每个打印语句。

PS:我知道重定向 sys.stdout 不好(但我仍然需要这样做)

【问题讨论】:

  • 您可能想查看logging 模块。
  • 谢谢你的复制链接,我会看看(必要时删除我的)
  • 哼...我不能删除我自己的帖子...

标签: python


【解决方案1】:

tee unix 命令读取标准输入并将其写入标准输出和一个或多个文件。 In 可能是您将脚本的输出重定向到 tee 的一个选项。

【讨论】:

    【解决方案2】:

    您可能应该运行通过管道传输到 tee: python hello.py | tee logfile.txt 的整个脚本。将sys.stdout 更改为包含拆分功能的类似文件的对象是可能的,但不会涵盖脚本运行的子进程。然后你需要通过管道使用第二个过程,到那时就不需要重新发明轮子了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-03
      • 1970-01-01
      • 2011-11-01
      • 2021-03-01
      • 1970-01-01
      • 2013-08-19
      • 1970-01-01
      • 2011-01-31
      相关资源
      最近更新 更多