python的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):
        pass

计算时间戳,用于当我们的文件名,这样就不容易重名,方便数据的保存

import time
t = time.strftime("-%Y%m%d-%H%M%S", time.localtime())  # 时间戳
filename = 'log' + t + '.txt'

紧接着需要实例化对象:

log = Logger(filename)  

然后将sys里的东西偷偷换成我们写的:

print("hi icy hunter")

接下来为所欲为的print就行了

print("hi icy hunter")

完整代码:

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):
        pass

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在控制台输出内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python控制台打印log输出重复的解决方法

    在我们使用log模块输出日志时,经常会遇到log输出重复的问题,如下: 先来看这个文件log.py的代码: 代码示例: ''' 功能描述:实现控制台和文件同时记录日志的功能 编写人:超哥 编写日期: 步骤分析:   1-配置日志记录器名称   2-配置日志级别   3-配置日志格式(可以分别设置,也可以统一设置)   4-创建并添加handler-控制台   5-创建并添加handler-文件   6-提供对外获取logger ''' import logging import sys def 

  • Python控制台输出时刷新当前行内容而不是输出新行的实现

    需求目标 执行Python程序的时候在控制台输出内容的时候只显示一行,然后自动刷新内容,像这样: Downloading File FooFile.txt [47%] 而不是这样: Downloading File FooFile.txt [47%] Downloading File FooFile.txt [48%] Downloading File FooFile.txt [49%] 实现环境 Python 3.x 实现代码 import time for i in range(10): t

  • python实现控制台输出颜色

    本文实例为大家分享了python实现控制台输出颜色的具体代码,供大家参考,具体内容如下 python控制台输出颜色,out()是基本方法,还封装了一些基本颜色方法,如red(),blue(),green()等 out()方法的color参数表示颜色,bgcolor表示背景颜色,style表示样式 其他方法的参数类似,三个参数的具体取值封装到Color类,BGColor类,Style类中. 基本方法: out(content, color=Color.DEFAULT, bgcolor=BGColo

  • 解决Python3 控制台输出InsecureRequestWarning问题

    解决Python3 控制台输出InsecureRequestWarning的问题 问题: 使用Python3 requests发送HTTPS请求,已经关闭认证(verify=False)情况下,控制台会输出以下错误: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.rea

  • python将控制台输出保存至文件的方法

    很多时候在Linux系统下运行python程序时,控制台会输出一些有用的信息.为了方便保存这些信息,有时需要对这些信息进行保存.这里介绍几种将控制台输出保存到文件中的方式: 1 重定向标准输出流 重定向标准输出流有两种方式,既可以在每个print方法中进行重定向,如下所示: # assume the log file is 'a.log' # for python2 print >> a.log, 'print something' # for python3 print('print som

  • Python loguru日志库之高效输出控制台日志和日志记录

    1安装loguru loguru的PyPI地址为:https://pypi.org/project/loguru/ GitHub仓库地址为:https://github.com/Delgan/loguru 我们可以直接使用pip命令对其进行安装 pip install loguru 或者下载其源码,使用Python命令进行安装. |2loguru简单使用 from loguru import logger logger.info("中文loguru") logger.debug(&qu

  • python的print输出在控制台并且将输出内容保存为文件(最新推荐)

    目录 前言 实现思路 实现方法 前言 深度学习log日志还是蛮重要的,print出来还不够,还得保存一下,目前找到的最方便的就如下所示了. 实现思路 我感觉就是类似于重写一下调用print的时候执行的方法,让他既能够在控制台输出,也能保存到文件里去 实现方法 定义一个Logger类 import sys # 需要引入的包 # 以下为包装好的 Logger 类的定义 class Logger(object): def __init__(self, filename="Default.log&quo

  • python通过colorama模块在控制台输出彩色文字的方法

    本文实例讲述了python通过colorama模块在控制台输出彩色文字的方法.分享给大家供大家参考.具体分析如下: colorama是一个python专门用来在控制台.命令行输出彩色文字的模块,可以跨平台使用,在windows下linux下都工作良好,如果你想让控制台的输出信息更漂亮一些,可以使用给这个模块. colorama官方地址:https://pypi.python.org/pypi/colorama 安装colorama模块 pip install colorama 使用范例 from

  • python 信息同时输出到控制台与文件的实例讲解

    python编程中,往往需要将结果用print等输出,如果希望输出既可以显示到IDE的屏幕上,也能存到文件中(如txt)中,该怎么办呢? 方法1 可通过日志logging模块输出信息到文件或屏幕.但可能要设置log的level或输出端,对于同时需要记录debug error等信息的较为合适,官方教程推荐学习用更规范的logger来操作. 例如,可参考来自官网的这段代码. import logging logging.basicConfig(filename='log_examp.log',lev

  • python中print的不换行即时输出的快速解决方法

    关于Python2.x和3.x带来的print不换行的问题:昨天有发过推文,利用end = 定义,解决了横向的小问题,但是由于屏幕显示的问题,若字符串长度过大,则会引起不便.两个或多个print做分割的情况下,如何保持依然横向输出,一般的是在print尾部加上逗号(,)但是在3.x下,则不行,需要使用end = "(something)",some signs like , . ; 'also you can put a word or str in"". Exam

  • 在python中用print()输出多个格式化参数的方法

    不废话,直接贴代码: disroot = math.sqrt(deta) root1 = (-b + disroot)/(2*a) root2 = (-b - disroot)/(2*a) print("有两个不同的解: %.2f,%.2f"%root1,%root2) 这是最初写的print()代码,不过运行时总提示TypeError 后来上网查了好多资料,发现格式根本不是这样子的,是我想当然了 disroot = math.sqrt(deta) root1 = (-b + disr

  • python将print输出的信息保留到日志文件中

    具体代码如下所示: import sys import os import sys import io import datetime def create_detail_day(): ''' :return: ''' # 年-月-日 # daytime = datetime.datetime.now().strftime('day'+'%Y-%m-%d') # 年_月_日 daytime = datetime.datetime.now().strftime('day'+'%Y_%m_%d')

  • python print输出延时,让其立刻输出的方法

    一句print("ni hao"),很久看不见,怎么让python print能立刻输出呢. 因为python默认是写入stdout缓冲的,使用-u参数启动python,就会立刻输出了. python3 -u driver.py 以上这篇python print输出延时,让其立刻输出的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • python 将print输出的内容保存到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) d

  • python 解决print数组/矩阵无法完整输出的问题

    当数组/矩阵过大则只会显示其中一部分,中间则会自动用省略号代替: 直接在import numpy 加上下面一句代码即可解决: import numpy as np np.set_printoptions(threshold=np.inf) 这样就可以将比较大的数组全显示出来: 以上这篇python 解决print数组/矩阵无法完整输出的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

随机推荐