python的print输出在控制台并且将输出内容保存为文件(最新推荐)
作者:Icy Hunter
这篇文章主要介绍了python的print输出在控制台并且将输出内容保存为文件,我感觉就是类似于重写一下调用print的时候执行的方法,让他既能够在控制台输出,也能保存到文件里去,需要的朋友可以参考下
深度学习log日志还是蛮重要的,print出来还不够,还得保存一下,目前找到的最方便的就如下所示了。
我感觉就是类似于重写一下调用print的时候执行的方法,让他既能够在控制台输出,也能保存到文件里去
定义一个Logger类
import sys # 需要引入的包
# 以下为包装好的 Logger 类的定义
class Logger(object):
def __init__(self, filename="Default.log"):
self.terminal = sys.stdout
self.log = open(filename, "w", encoding="utf-8") # 防止编码错误
def write(self, message):
self.terminal.write(message)
self.log.write(message)
def flush(self):
计算时间戳,用于当我们的文件名,这样就不容易重名,方便数据的保存
import time
t = time.strftime("-%Y%m%d-%H%M%S", time.localtime()) # 时间戳
filename = 'log' + t + '.txt'
紧接着需要实例化对象:
然后将sys里的东西偷偷换成我们写的:
接下来为所欲为的print就行了
完整代码:
import sys # 需要引入的包
# 以下为包装好的 Logger 类的定义
class Logger(object):
def __init__(self, filename="Default.log"):
self.terminal = sys.stdout
self.log = open(filename, "w", encoding="utf-8") # 防止编码错误
def write(self, message):
self.terminal.write(message)
self.log.write(message)
def flush(self):
import time
t = time.strftime("-%Y%m%d-%H%M%S", time.localtime()) # 时间戳
filename = 'log' + t + '.txt'
log = Logger(filename)
sys.stdout = log
print("hi icy hunter")
放到.py里运行一下:
控制台输出:
生成了这么个文件
点开看看:
嗯,是我想要的结果了。
ps:发现在ipynb里运行好像文件为空,可能是线程没结束,还没来得及写吧,不太清楚,不过要是用ipynb应该就不愁保存print了吧…
到此这篇关于python的print输出在控制台并且将输出内容保存为文件的文章就介绍到这了,更多相关python在控制台输出内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
Python利用模糊哈希实现对比文件相似度2023-01-01
tkinter如何实现label超链接调用浏览器打开网址2023-01-01
Python实现内存泄露排查的示例详解2023-01-01
python实现简易连点器2023-01-01
Python海象运算符超详细讲解2023-01-01
Python基于jieba分词实现snownlp情感分析2023-01-01
python的print输出在控制台并且将输出内容保存为文件(最新推荐)2023-01-01
Python实现批量识别银行卡号码以及自动写入Excel表格步骤详解2023-01-01
美国设下计谋,用娘炮文化重塑日本,已影响至中国2021-11-19
时空伴随者是什么意思?时空伴随者介绍2021-11-09
工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终2021-11-05
2022年放假安排出炉:五一连休5天 2022年所有节日一览表2021-10-26
电脑版 - 返回首页
2006-2023 脚本之家 JB51.Net , All Rights Reserved.
苏ICP备14036222号