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二叉树的实现实例
Nov 21 Python
Python实现的石头剪子布代码分享
Aug 22 Python
详解Python2.x中对Unicode编码的使用
Apr 03 Python
python使用arcpy.mapping模块批量出图
Mar 06 Python
解决pyinstaller打包exe文件出现命令窗口一闪而过的问题
Oct 31 Python
python 对多个csv文件分别进行处理的方法
Jan 07 Python
浅析Python3中的对象垃圾收集机制
Jun 06 Python
python之生产者消费者模型实现详解
Jul 27 Python
pygame实现贪吃蛇游戏(上)
Oct 29 Python
Django3.0 异步通信初体验(小结)
Dec 04 Python
python使用openCV遍历文件夹里所有视频文件并保存成图片
Jan 14 Python
Python 安装 virturalenv 虚拟环境的教程详解
Feb 21 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中文分词 自动获取关键词介绍
2012/11/13 PHP
写一段简单的PHP建立文件夹代码
2015/01/06 PHP
Nginx下配置codeigniter框架方法
2015/04/07 PHP
详解PHP中array_rand函数的使用方法
2016/09/11 PHP
ASP中Sub和Function的区别说明
2020/08/30 Javascript
JS简单操作select和dropdownlist实例
2014/11/26 Javascript
JavaScript通过字符串调用函数的实现方法
2015/03/18 Javascript
酷炫jQuery全屏3D焦点图动画效果
2016/03/22 Javascript
使用 stylelint检查CSS_StyleLint
2016/04/28 Javascript
js本地图片预览实现代码
2016/10/09 Javascript
探索Javascript中this的奥秘
2016/12/11 Javascript
详解前端构建工具gulpjs的使用介绍及技巧
2017/01/19 Javascript
js 奇葩技巧之隐藏代码
2017/08/11 Javascript
重新认识vue之事件阻止冒泡的实现
2018/08/02 Javascript
微信小程序基于picker实现级联菜单
2019/02/15 Javascript
NodeJs 实现简单WebSocket即时通讯的示例代码
2019/08/05 NodeJs
CountUp.js实现数字滚动增值效果
2019/10/17 Javascript
Vue中添加滚动事件设置的方法详解
2020/09/14 Javascript
JavaScript使用setTimeout实现倒计时效果
2021/02/19 Javascript
[13:16]INFAMOUS vs VGJ T BO3
2018/06/07 DOTA
解读Python中degrees()方法的使用
2015/05/18 Python
Python实例一个类背后发生了什么
2016/02/09 Python
python验证码识别的示例代码
2017/09/21 Python
Python实现利用最大公约数求三个正整数的最小公倍数示例
2017/09/30 Python
python使用epoll实现服务端的方法
2018/10/16 Python
python将pandas datarame保存为txt文件的实例
2019/02/12 Python
python下载微信公众号相关文章
2019/02/26 Python
python使用 cx_Oracle 模块进行查询操作示例
2019/11/28 Python
Python小白不正确的使用类变量实例
2020/05/29 Python
Lovedrobe官网:英国领先的大码服装品牌
2019/09/19 全球购物
如何写毕业求职自荐信
2013/11/06 职场文书
中餐厅主管的职责范文
2014/02/04 职场文书
大学生就业自荐书
2014/06/16 职场文书
教师党员学习群众路线心得体会
2014/11/04 职场文书
少先队入队仪式主持词
2015/07/04 职场文书
员工给公司的建议书
2019/06/24 职场文书