Python3内置模块pprint让打印比print更美观详解


Posted in Python onJune 02, 2019

概述

在我们使用内置打印函数print时,打印出的Python数据结构对象总是一行的输出的方式,这样对数据结构较复杂或数据较多的对象的显示并不美观,这时我们可以利用pprint输出美化数据结构对象。

pprint方法概览

美化输出

我们可以利用pprint中的PrettyPrinter控制输出的打印时的缩进,行宽、甚至打印深度等,定义类如下
class pprint.PrettyPrinter(indent = 1,width = 80,depth = None,stream = None,*,compact = False )

  • indent 缩进
  • width 宽度
  • depth 打印深度
  • stream 指输出流对象,stream = None输出流对象默认是sys.stdout
  • compact 如果compact为false(默认值),则长序列中的每个项目将在单独的行上进行格式化。如果compact为true,则将在每个输出行上格式化适合宽度的项目。
import pprint

L = [str(i)*20 for i in range(10)]
pp = pprint.PrettyPrinter(indent=4)
pp.pprint(L)
print(L)

示例结果:

[   '00000000000000000000',
    '11111111111111111111',
    '22222222222222222222',
    '33333333333333333333',
    '44444444444444444444',
    '55555555555555555555',
    '66666666666666666666',
    '77777777777777777777',
    '88888888888888888888',
    '99999999999999999999']
['00000000000000000000', '11111111111111111111', '22222222222222222222', '33333333333333333333', '44444444444444444444', '55555555555555555555', '66666666666666666666', '77777777777777777777', '88888888888888888888', '99999999999999999999']

对象字符串

我们也可以将目标对象的格式化表示形式返回为字符串。 indent, width,depth和compact将PrettyPrinter 作为格式化参数传递给构造函数,定义类如下

L = [str(i)*20 for i in range(10)]
pp = pprint.pformat(L, indent=4)
print(pp)
print(L)

示例结果:

[   '00000000000000000000',
    '11111111111111111111',
    '22222222222222222222',
    '33333333333333333333',
    '44444444444444444444',
    '55555555555555555555',
    '66666666666666666666',
    '77777777777777777777',
    '88888888888888888888',
    '99999999999999999999']
['00000000000000000000', '11111111111111111111', '22222222222222222222', '33333333333333333333', '44444444444444444444', '55555555555555555555', '66666666666666666666', '77777777777777777777', '88888888888888888888', '99999999999999999999']

格式化打印

输出格式的对象字符串到指定的输出流,最后以换行符结束,定义类如下

import pprint

L = [str(i)*20 for i in range(10)]
pprint.pprint(L, indent=4)
print(L)

示例结果:

[   '00000000000000000000',
    '11111111111111111111',
    '22222222222222222222',
    '33333333333333333333',
    '44444444444444444444',
    '55555555555555555555',
    '66666666666666666666',
    '77777777777777777777',
    '88888888888888888888',
    '99999999999999999999']
['00000000000000000000', '11111111111111111111', '22222222222222222222', '33333333333333333333', '44444444444444444444', '55555555555555555555', '66666666666666666666', '77777777777777777777', '88888888888888888888', '99999999999999999999']

可读性

判断对象object的字符串对象是否可读,True可读,反之则反。

import pprint

L = [str(i)*20 for i in range(10)]
B = pprint.isreadable(L)
print(B)

示例结果:

True

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python抓取京东价格分析京东商品价格走势
Jan 09 Python
python计算圆周长、面积、球体体积并画出圆
Apr 08 Python
Python与人工神经网络:使用神经网络识别手写图像介绍
Dec 19 Python
Python3实现爬取指定百度贴吧页面并保存页面数据生成本地文档的方法
Apr 22 Python
Tensorflow使用支持向量机拟合线性回归
Sep 07 Python
Python 单元测试(unittest)的使用小结
Nov 14 Python
如何利用Pyecharts可视化微信好友
Jul 04 Python
Ubuntu+python将nii图像保存成png格式
Jul 18 Python
Python利用神经网络解决非线性回归问题实例详解
Jul 19 Python
详解解决Python memory error的问题(四种解决方案)
Aug 08 Python
python实现kNN算法识别手写体数字的示例代码
Aug 16 Python
python 实现list或string按指定分段
Dec 25 Python
python实现感知机线性分类模型示例代码
Jun 02 #Python
python调用摄像头拍摄数据集
Jun 01 #Python
Python OpenCV实现视频分帧
Jun 01 #Python
python的set处理二维数组转一维数组的方法示例
May 31 #Python
python整合ffmpeg实现视频文件的批量转换
May 31 #Python
python自动发邮件总结及实例说明【推荐】
May 31 #Python
python实现视频分帧效果
May 31 #Python
You might like
PHP中exec函数和shell_exec函数的区别
2014/08/20 PHP
php解析xml方法实例详解
2015/05/12 PHP
Laravel下生成验证码的类
2017/11/15 PHP
基于JQuery模仿苹果桌面的Dock效果(初级版)
2012/10/15 Javascript
js实现图片放大缩小功能后进行复杂排序的方法
2012/11/08 Javascript
artdialog的图片/标题以及关闭按钮不显示的解决方法
2013/06/27 Javascript
Javascript对象属性方法汇总
2013/11/21 Javascript
JS小游戏之象棋暗棋源码详解
2014/09/25 Javascript
javascript使用switch case实现动态改变超级链接文字及地址
2014/12/16 Javascript
你所不了解的javascript操作DOM的细节知识点(一)
2015/06/17 Javascript
jquery插件bootstrapValidator表单验证详解
2016/12/15 Javascript
浅谈es6语法 (Proxy和Reflect的对比)
2017/10/24 Javascript
原生JS实现的双色球功能示例
2018/02/02 Javascript
vue-cli项目中使用Mockjs详解
2018/05/14 Javascript
jsonp跨域获取数据的基础教程
2018/07/01 Javascript
详解vue+webpack+express中间件接口使用
2018/07/17 Javascript
如何去除富文本中的html标签及vue、react、微信小程序中的过滤器
2018/11/21 Javascript
微信小程序实现简单跑马灯效果
2020/05/26 Javascript
微信小程序 弹窗输入组件的实现解析
2019/08/12 Javascript
vue实现全屏滚动效果(非fullpage.js)
2020/03/07 Javascript
基于原生js实现判断元素是否有指定class名
2020/07/11 Javascript
基于ID3决策树算法的实现(Python版)
2017/05/31 Python
Python利用正则表达式实现计算器算法思路解析
2018/04/25 Python
python 字典修改键(key)的几种方法
2018/08/10 Python
判断python对象是否可调用的三种方式及其区别详解
2019/01/31 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
2019/09/15 Python
python 利用opencv实现图像网络传输
2020/11/12 Python
HTML5 progress和meter控件_动力节点Java学院整理
2017/07/06 HTML / CSS
美国电子产品折扣网站:Daily Steals
2017/05/20 全球购物
美国五金商店:Ace Hardware
2018/03/27 全球购物
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
2014/09/15 面试题
学校经典推荐信
2013/10/30 职场文书
发展部经理职责规定
2014/02/22 职场文书
个人校本研修方案
2014/05/26 职场文书
法人授权委托书公证范本
2014/09/14 职场文书
企业爱心捐款倡议书
2015/04/27 职场文书