如何打印和重定向打印内容到文件?

时间:2014-04-10 10:25:44

标签: python

我知道如何将stdout重定向到文件中:

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

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

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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