Python3将print打印的信息保存到文件
Python3如何将print打印数据保存到文件。
·
大家好,我是老王,今天在做数据分析处理的过程中,想加一个日志,这样程序跑的每一步都可以快速定位到。正好在调试程序时候,关键点的信息已经用print()打印出来了,那正好可以把打印的信息直接保存就可以啦。
【方法1】
有的朋友说可以在print()打印后边加上输出的文件名。
比如:
log = open("a.txt",mode="a",encoding="utf-8")
for i in range(100):
a=b()
print(a,file = log)
log.close()
但是我个人觉得这样太繁琐了,如果输出的数据比较多,每一行都需要添加文件名称,那工作量太大了。不推荐。
【方法2】
定义一个将print()导出日志的类
如下:
class Logger(object):
def __init__(self, filename="Default.log"):
self.terminal = sys.stdout
self.log = open(filename, "a")
#可以选择"w"
self.log = open(filename, "a", encoding="utf-8") # 防止编码错误
def write(self, message):
self.terminal.write(message)
self.log.write(message)
def flush(self):
pass
def reset(self):
self.log.close()
sys.stdout=self.terminal
if __name__ == '__main__':
try:
sys.stdout = Logger('202205.txt')
print("输入一串字符保存日志")
finally:
sys.stdout.reset()
【说明】通过多次测试,亲测有效!但是需要注意两个问题:
1.编码问题:一定要设置encoding="utf-8",防止编码错误。
2.结尾关闭文档链接:很多案例没有关闭日志文档,会导致无法删除日志文件,需要关闭开发平台,释放链接才能删除。所以一定要在最后记得关闭日志的链接!
好啦今天就说到这,大家有疑问可以给老王留言哦!
更多推荐
已为社区贡献2条内容
所有评论(0)