将控制台的内容输出到txt文件

每次输入到txt文件时,都是只有最后一条或者刚刚开始的一条数据,不是全部的数据,因此很是烦恼

我找到了一个很好的代码,先说好:我直接复制粘贴的

import sys, os, time

# log recorder
class Logger(object):

    def __init__(self, stream=sys.stdout):
        output_dir = "./75_logpool/"  # folder 
        if not os.path.exists(output_dir):
            os.makedirs(output_dir)
        #log_name = '{}.txt'.format(time.strftime('%Y-%m-%d-%H-%M',time.localtime(time.time())))
        log_name_time = time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time()))
        log_name = log_name_time + ".txt"
        filename = os.path.join(output_dir, log_name)

        self.terminal = stream
        self.log = open(filename, 'a+')

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

    def flush(self):
        pass

下面的是调用的主函数代码:

sys.stdout = Logger(sys.stdout)  # record log
sys.stderr = Logger(sys.stderr)  # record error 

下面是别人的内容,我直接截图了
在这里插入图片描述
由于这个博客的内容是我写的,但是但部分借鉴了别人的东西.因此,我还是说我写的博客是原创,谢谢!

我参考的博客地址如下:

https://zhuanlan.zhihu.com/p/561010832

猜你喜欢

转载自blog.csdn.net/qq_44666320/article/details/129385066