代码
import sys
import time
class Logger(object):
def __init__(self, fileN='Default.log'):
self.terminal = sys.stdout
sys.stdout = self
self.log = open(fileN, 'w')
def write(self, message):
'''print实际相当于sys.stdout.write'''
self.terminal.write(message)
self.log.write(message)
def reset(self):
self.log.close()
sys.stdout=self.terminal
def flush(self):
pass
for i in range(3):
logger = Logger('./result/temp%s.txt'%i)
a=(0,1,2,3)
print(a,i)
logger.reset()
使用方法
支持写入多个文件
Logger中填写 文件名即可
原理
terminal中保存原始输出模式
将输出改成取决于自己,然后每次输出既输出到终端,也保存到文件(使用open)
每次结束的时候用reset关闭文件并且把stdout换成之前保存的原始输出模式,如果不换的话会报错