python保存终端内容

本文介绍了两种方法来保存Python终端内容。方法一使用logging,但存在log不可叠加、无法实时查看执行过程和进度的问题。方法二不仅能实时显示,还能将内容存储在terminal_log.txt文件中,提供更好的终端输出记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法一:

#把这三行代码放在程序前
import sys
f_handler=open('out.log', 'w')
sys.stdout=f_handler

但是在缺点是:

1.log不可叠加:每一次执行,都会抹掉文件out.log中之前的数据。

2.看不到执行过程中的log:out.log只有执行完才会显示,也就是执行中终端打印的信息完全看不到了。

2.不知道执行进度:终端没有了显示,不了解具体执行到哪里了:若算法执行很长,例如神经网络执行100个epoch的时候,终端一直没有任何显示内容,会让用户不知道执行到第几个epoch了。

方法二:(觉得更好)

最终会存储在terminal_log.txt文件中。txt保存的文位置是终端所在的当前目录。

import sys
import os
class Logger(object):
    def __init__(self, filename="Default.log"):
        self.terminal = sys.stdout
        self.log = open(filename, "a")

    def write(self, message):
        self.terminal.write(message)
        self.log.write(message)

    def flush(self):
        pass

type = sys.getfilesystemencoding()
#sys.stdout = Logger('/media/lin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值