博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 信息同时输出到控制台与文件
阅读量:6457 次
发布时间:2019-06-23

本文共 1054 字,大约阅读时间需要 3 分钟。

python编程中,往往需要将结果用print等输出,如果希望输出既可以显示到IDE的屏幕上,也能存到文件中(如txt)中,该怎么办呢?


方法1

可通过日志logging模块输出信息到文件或屏幕。但可能要设置log的level或输出端,对于同时需要记录debug error等信息的较为合适,官方教程推荐学习用更规范的logger来操作。 

例如,可参考来自官网的这段代码。

import logginglogging.basicConfig(filename='log_examp.log',level=logging.DEBUG)logging.debug('This message should go to the log file')logging.info('So should this')logging.warning('And this, too')
  • 1
  • 2
  • 3
  • 4
  • 5

方法2

利用print输出两次 

比如这里我想输出程序的path和程序的文件名

import os# 第一句输出到consle:print("filepath:",__file__,"\nfilename:",os.path.basename(__file__))# 第二句输出到txt: with open("outputlog.txt","a+") as f: print("filepath:",__file__, "\nfilename:",os.path.basename(__file__)) #当然 也可以用f.write("info")的方式写入文件
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

方法3

利用输出重定向输出两次 

同样输出程序path和文件名

import osimport systemp=sys.stdout # 记录当前输出指向,默认是conslewith open("outputlog.txt","a+") as f: sys.stdout=f # 输出指向txt文件 print("filepath:",__file__, "\nfilename:",os.path.basename(__file__)) print("some other information") print("some other") print("information") sys.stdout=temp # 输出重定向回consle print(f.readlines()) # 将记录在文件中的结果输出到屏幕

转载地址:http://ubizo.baihongyu.com/

你可能感兴趣的文章
[洛谷P3978][TJOI2015]概率论
查看>>
Python学习——编程语言介绍
查看>>
Python字符串的格式化
查看>>
C#反射---属性
查看>>
服务器常用的状态码及其对应的含义如下
查看>>
完美字符串
查看>>
我为什么要写LeetCode的博客?
查看>>
zoom和transform:scale的区别
查看>>
Plplot中line width 问题
查看>>
js中(function(){…})()立即执行函数写法理解
查看>>
QQ空间Python爬虫(2)---分析json
查看>>
NEU OJ 1651 Great number
查看>>
VSCode + PYQT5 + QtDesigner 环境搭建和测试
查看>>
The process could not execute 'sp_MSadd_replcmds'错误解决方案
查看>>
runas /user:administrator cmd 以管理员身份运行CMD
查看>>
配置tomcat允许跨域访问,cors跨域资源共享
查看>>
基本数据结构:链表(list)
查看>>
[LUOGU] P3275 [SCOI2011]糖果
查看>>
[LUOGU] P3469 [POI2008]BLO-Blockade
查看>>
非结构化数据与结构化数据提取---- 案例:使用bs4的爬虫
查看>>