我知道如何将stdout重定向到文件中:
import sys
sys.stdout = open('log.txt', 'w')
print 'test'
这将创建一个log.txt
,其中test
将写入其中。
但是,test
将不会在标准输出中打印。
如何在终端和文件中打印和重定向test
而不更改程序中的每个print语句。
PS:我知道重定向sys.stdout很糟糕(但我仍然需要这样做)
答案 0 :(得分:0)
tee unix命令读取标准输入并将其写入标准输出和一个或多个文件。 In可能是您将脚本输出重定向到tee的选项。
答案 1 :(得分:0)
您应该将整个脚本传输到tee
:python hello.py | tee logfile.txt
。可以将sys.stdout
更改为包含拆分功能的类文件对象,但不会涵盖脚本运行的子进程。然后,您需要通过管道使用第二个过程,然后不需要重新发明轮子。