python将控制台输出保存至文件的方法
很多时候在Linux系统下运行python程序时,控制台会输出一些有用的信息。为了方便保存这些信息,有时需要对这些信息进行保存。这里介绍几种将控制台输出保存到文件中的方式:
1 重定向标准输出流
重定向标准输出流有两种方式,既可以在每个print方法中进行重定向,如下所示:
# assume the log file is 'a.log' # for python2 print >> a.log, 'print something' # for python3 print('print something', file=a.log)
同时也可以在全局上进行设置:
import sys f = open('a.log', 'a') sys.stdout = f sys.stderr = f # redirect std err, if necessary
2 使用tee命令重定向
上述方法的缺点在于重定向后,控制台就不再显示信息,可能对观察程序现象造成困难。使用tee命令则可以在保存标准输出的同时在控制台上仍然显示信息。使用范例如下:
python a_script.py 2>&1 | tee a.log
这种方法的缺点是控制台显示的内容会断断续续出现,与没有重定向时显示的方式有些不同。
3 自定义logger
我们可以在python程序中自定义一个记录者类,用来同时写文件以及在控制台进行显示。一个例子如下:
import sys class Logger(object): def __init__(self, filename='default.log', stream=sys.stdout): 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(a.log, sys.stdout) sys.stderr = Logger(a.log_file, sys.stderr) # redirect std err, if necessary # now it works print 'print something'
此时控制台的显示也同原先一样正常。
以上这篇python将控制台输出保存至文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Python使用Scrapy保存控制台信息到文本解析
在Windows平台下,如果想运行爬虫的话,就需要在cmd中输入: scrapy crawl spider_name 这时,爬虫就能启动,并在控制台(cmd)中打印一些信息,如下图所示: 但是,cmd中默认只能显示几屏的信息,其他的信息就无法看到. 如果我们想查看爬虫在运行过程中的调试信息或错误信息的话,会很不方便. 此时,我们就可以将控制台的信息写入的一个文本文件中去,方便我们查看. 命令如下: D:\>scrapy crawl spder_name -s LOG_FILE=scrapy.lo
-
Python同时向控制台和文件输出日志logging的方法
本文实例讲述了Python同时向控制台和文件输出日志logging的方法.分享给大家供大家参考.具体如下: python提供了非常方便的日志模块,可实现同时向控制台和文件输出日志的功能. #-*- coding:utf-8 -*- import logging # 配置日志信息 logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s', datefmt
-
python 通过logging写入日志到文件和控制台的实例
如下所示: import logging # 创建一个logger logger = logging.getLogger('mylogger') logger.setLevel(logging.DEBUG) # 创建一个handler,用于写入日志文件 fh = logging.FileHandler('test.log') fh.setLevel(logging.DEBUG) # 再创建一个handler,用于输出到控制台 ch = logging.StreamHandler() ch.set
-
python 信息同时输出到控制台与文件的实例讲解
python编程中,往往需要将结果用print等输出,如果希望输出既可以显示到IDE的屏幕上,也能存到文件中(如txt)中,该怎么办呢? 方法1 可通过日志logging模块输出信息到文件或屏幕.但可能要设置log的level或输出端,对于同时需要记录debug error等信息的较为合适,官方教程推荐学习用更规范的logger来操作. 例如,可参考来自官网的这段代码. import logging logging.basicConfig(filename='log_examp.log',lev
-
python:print格式化输出到文件的实例
遇到一个写文件的小程序,需要把print输出改成输出到文件,遇到这个问题的思路是把需要的字符串拼接到一个字符串中,然后在写到文件中,这样做觉得很麻烦,想到之前的学的exec的使用,但是实验后发现exec没有返回值,无法将输出保存在变量中. 查过资料后,发现可以把print的输出直接写到文件里,不需要中间的保存过程,非常有效方便. 格式:print >> fp,格式串 #fp为文件句柄 data=open("D:\data.txt",'w+') print>>da
-
对Python捕获控制台输出流的方法详解
有时候我们的代码里可能要调用控制台命令,比如我想用Python写一个批量编译 .java 文件的脚本,用到如下代码 常规用法 os.system import os,traceback try: p = os.system("javac Test.java") print p except: print "\nexcept:\n" print traceback.format_exc() 如然编译成功会返回一个0,如果错误会返回一个非0的值给p,这种方法可以知道执行
-
python在控制台输出进度条的方法
本文实例讲述了python在控制台输出进度条的方法.分享给大家供大家参考.具体实现方法如下: 进度条效果如下所示: |#############################---------------------| 59 percent done 代码如下: class ProgressBar(): def __init__(self, width=50): self.pointer = 0 self.width = width def __call__(self,x): # x in p
-
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实现控制台输出颜色
本文实例为大家分享了python实现控制台输出颜色的具体代码,供大家参考,具体内容如下 python控制台输出颜色,out()是基本方法,还封装了一些基本颜色方法,如red(),blue(),green()等 out()方法的color参数表示颜色,bgcolor表示背景颜色,style表示样式 其他方法的参数类似,三个参数的具体取值封装到Color类,BGColor类,Style类中. 基本方法: out(content, color=Color.DEFAULT, bgcolor=BGColo
-
python读取和保存mat文件的方法
目录 一.mat文件 二.python中读取mat文件 1.读取文件 2.保存文件 首先我们谈谈MarkDown编辑器,我感觉些倒是挺方便的,因为用惯了LaTeX,对于MarkDown还是比较容易上手的,但是我发现,MarkDown中有这样几个问题一直没能找到具体的解决方法: 图片大小的问题.在LaTeX中我们可以调整图片的大小,以适应整个文本:字体,字号大小的设置.在MarkDown里面标题倒是挺大的,但是正文却显得太小,不是很喜欢里面的字体. 主要发现上面两个问题导致编辑出来的文本挺难看.
-
python geopandas读取、创建shapefile文件的方法
shapefile是GIS中非常重要的一种数据类型,在ArcGIS中被称为要素类(Feature Class),主要包括点(point).线(polyline)和多边形(polygon).作为一种十分常见的矢量文件格式,geopandas对shapefile提供了很好的读取和写出支持,其DataFrame结构相当于GIS数据中的一张属性表,使得可以直接操作矢量数据属性表,使得在python中操作地理数据更方便.本文给大家介绍下用Python脚本中对Shapefile文件(.shp,.shx,.d
-
详解Python读取和写入操作CSV文件的方法
目录 什么是 CSV 文件? 内置 CSV 库解析 CSV 文件 读取 CSV 文件csv 将 CSV 文件读入字典csv 可选的 Python CSV reader参数 使用 csv 写入文件 从字典中写入 CSV 文件csv 使用 pandas 库解析 CSV 文件 pandas 读取 CSV 文件 pandas 写入 CSV 文件 最流行的数据交换格式之一是 CSV 格式.是需要通过键盘和控制台以外的方式将信息输入和输出的程序,通过文本文件交换信息是在程序之间共享信息的常用方法. 这里带和
-
Python实现压缩和解压缩ZIP文件的方法分析
本文实例讲述了Python实现压缩和解压缩ZIP文件的方法.分享给大家供大家参考,具体如下: 有时我们需要在 Python 中使用 zip 文件,而在1.6版中,Python 就已经提供了 zipfile 模块可以进行这样的操作.不过 Python 中的 zipfile 模块不能处理多卷的情况,不过这种情况并不多见,因此在通常情况下已经足够使用了.下面我只是对一些基本的 zipfile 操作进行了记录,足以应付大部分的情况了. zipfile 模块可以让你打开或写入一个 zip 文件.比如: i
-
python顺序执行多个py文件的方法
假如我要执行code目录下的python程序,假设该目录下有1.py,2.py,3.py,4.py四个文件,但是我想执行1.py,2.py,4.py,则可在该目录下创建一个python文件,代码如下: import os os.system("python ./1.py") os.system("python ./2.py") os.system("python ./4.py") 若想指定输出到某个文件,这里我指定输出到log.txt,log.t
-
python django下载大的csv文件实现方法分析
本文实例讲述了python django下载大的csv文件实现方法.分享给大家供大家参考,具体如下: 接手他人项目,第一个要优化的点是导出csv的功能,而且要支持比较多的数据导出,以前用php实现过,直接写入php://output就行了,django怎么做呢?如下: 借助django的StreamingHttpResponse和python的generator def outputCSV(rows, fname="output.csv", headers=None): def get
-
python 的 openpyxl模块 读取 Excel文件的方法
Python 的 openpyxl 模块可以让我们能读取和修改 Excel 文件. 首先让我们先理解一些 Excel 基础概念. 1 Excel 基础概念 Excel 文件也称做为工作簿.每个工作簿可以包含多个工作表(Sheet).用户当前查看的表或关闭 Excel 前最后查看的表,称为活动表. 每一张表都是由列和行构成的.列是以 A 开始的字母表示:而行是以 1 开始的数字表示的.由特定行和列所指定的方格称为单元格.每个单元格都可以包含一个数字或文本.这些单元格就构成了这张表. 2 安装 op
随机推荐
- docker image删不掉的解决办法
- 批处理 删除重复行的代码
- 基于Swoole实现PHP与websocket聊天室
- php中get_magic_quotes_gpc()函数说明
- PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
- ASP 时间函数及如何获取服务器时间的写法
- Android在JNI中使用ByteBuffer的方法
- 文本框中禁止非数字字符输入比如手机号码、邮编
- getComputedStyle与currentStyle获取样式(style/class)
- 马尔可夫链算法(markov算法)的awk、C++、C语言实现代码
- jQuery实现仿美橙互联两级导航菜单的方法
- android实现简单的画画板实例代码
- C#编程获取客户端计算机硬件及系统信息功能示例
- VPN技术详解
- Android Studio中通过CMake使用NDK并编译自定义库和添加预编译库
- 超实用的android网络工具类
- Linux使用zsh提高效率的5条建议
- 微信小程序实现的自定义分享功能示例
- python脚本开机自启的实现方法
- 实例讲解PHP表单验证功能