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使用正则表达式检测密码强度源码分享
Jun 11 Python
Python3实现并发检验代理池地址的方法
Sep 18 Python
Django的HttpRequest和HttpResponse对象详解
Jan 26 Python
详解如何在python中读写和存储matlab的数据文件(*.mat)
Feb 24 Python
Python实现的凯撒密码算法示例
Apr 12 Python
解决Python plt.savefig 保存图片时一片空白的问题
Jan 10 Python
Python实现一个数组除以一个数的例子
Jul 20 Python
Python流程控制 if else实现解析
Sep 02 Python
关于Python 常用获取元素 Driver 总结
Nov 24 Python
python文件绝对路径写法介绍(windows)
Dec 25 Python
Opencv 图片的OCR识别的实战示例
Mar 02 Python
OpenCV图像变换之傅里叶变换的一些应用
Jul 26 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
如何开始收听短波广播
2021/03/01 无线电
php中switch与ifelse的效率区别及适用情况分析
2015/02/12 PHP
php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证
2016/05/04 PHP
Thinkphp整合微信支付功能
2016/12/14 PHP
静态的动态续篇之来点XML
2006/08/15 Javascript
JS location几个方法小姐
2008/07/09 Javascript
jquery快捷动态绑定键盘事件的操作函数代码
2013/10/17 Javascript
Js保留小数点的4种效果实现代码分享
2014/04/12 Javascript
nodejs中使用monk访问mongodb
2014/07/06 NodeJs
使用typeof判断function是否存在于上下文
2014/08/14 Javascript
JavaScript学习笔记之JS函数
2015/01/22 Javascript
js选项卡的实现方法
2015/02/09 Javascript
Node.js 异步异常的处理与domain模块解析
2017/05/10 Javascript
jQuery Json数据格式排版高亮插件json-viewer.js使用方法详解
2017/06/12 jQuery
weex slider实现滑动底部导航功能
2017/08/28 Javascript
原生js实现简单的焦点图效果实例
2017/12/14 Javascript
js实现点击按钮复制文本功能
2020/07/20 Javascript
Vue中keep-alive 实现后退不刷新并保持滚动位置
2020/03/17 Javascript
JS使用Chrome浏览器实现调试线上代码
2020/07/23 Javascript
[14:57]DOTA2 HEROS教学视频教你分分钟做大人-幽鬼
2014/06/13 DOTA
Python检测网站链接是否已存在
2016/04/07 Python
python批量替换页眉页脚实例代码
2018/01/22 Python
用python爬取租房网站信息的代码
2018/12/14 Python
pymysql模块的操作实例
2019/12/17 Python
德国著名廉价网上药店:Shop-Apotheke
2017/07/23 全球购物
Pharmacy Online中文直邮网站:澳洲大型药房
2020/06/27 全球购物
执行力心得体会
2013/12/31 职场文书
检查接待方案
2014/02/27 职场文书
八一建军节感言
2014/02/28 职场文书
三问三解心得体会
2014/09/05 职场文书
2014年工作总结与下年工作计划
2014/11/27 职场文书
工作失职自我检讨书
2015/05/05 职场文书
2016年优秀少先队员事迹材料
2016/02/26 职场文书
Python 文本滚动播放器的实现代码
2021/04/25 Python
浅谈react useEffect闭包的坑
2021/06/08 Javascript
Vue鼠标滚轮滚动切换路由效果的实现方法
2021/08/04 Vue.js