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中反射用法实例
Mar 27 Python
详解Python中用于计算指数的exp()方法
May 14 Python
Python实现LRU算法的2种方法
Jun 24 Python
python如何实现远程控制电脑(结合微信)
Dec 21 Python
Python3 模块、包调用&路径详解
Oct 25 Python
python学习基础之循环import及import过程
Apr 22 Python
python使用for循环计算0-100的整数的和方法
Feb 01 Python
详解python和matlab的优势与区别
Jun 28 Python
Python threading的使用方法解析
Aug 28 Python
Python 如何优雅的将数字转化为时间格式的方法
Sep 26 Python
Python Tensor FLow简单使用方法实例详解
Jan 14 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
Jun 18 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/02/05 PHP
PHP实现事件机制的方法
2015/07/10 PHP
PHP实现对二维数组某个键排序的方法
2016/09/14 PHP
Yii2实现增删改查后留在当前页的方法详解
2017/01/13 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
php微信开发之图片回复功能
2018/06/14 PHP
php实现将数据做成json的格式给前端使用
2018/08/21 PHP
Yii1.1框架实现PHP极光推送消息通知功能
2018/09/06 PHP
JS判断文本框内容改变事件的简单实例
2014/03/07 Javascript
Javascript中3个需要注意的运算符
2015/04/02 Javascript
Linux下为Node.js程序配置MySQL或Oracle数据库的方法
2016/03/19 Javascript
JavaScript中removeChild 方法开发示例代码
2016/08/15 Javascript
javascript如何创建对象
2016/08/29 Javascript
NodeJS中的MongoDB快速入门详细教程
2016/11/11 NodeJs
Node.js 中exports 和 module.exports 的区别
2017/03/14 Javascript
基于JavaScript实现类名的添加与移除
2017/04/23 Javascript
详解vue.js的事件处理器v-on:click
2017/06/27 Javascript
JS+canvas绘制的动态机械表动画效果
2017/09/12 Javascript
vue使用localStorage保存登录信息 适用于移动端、PC端
2019/05/27 Javascript
Js逆向实现滑动验证码图片还原的示例代码
2020/03/10 Javascript
Vuex的各个模块封装的实现
2020/06/05 Javascript
Python中处理unchecked未捕获异常实例
2015/01/17 Python
11月编程语言排行榜 Python逆袭C#上升到第4
2017/11/15 Python
python入门:这篇文章带你直接学会python
2018/09/14 Python
Python列表切片操作实例总结
2019/02/19 Python
python字典嵌套字典的情况下找到某个key的value详解
2019/07/10 Python
django drf框架中的user验证以及JWT拓展的介绍
2019/08/12 Python
tensorflow模型保存、加载之变量重命名实例
2020/01/21 Python
python的json包位置及用法总结
2020/06/21 Python
Pretty Green美国:英式摇滚服饰风格代表品牌之一
2019/01/23 全球购物
公司庆典活动邀请函
2014/01/09 职场文书
自荐书范文范例
2014/02/13 职场文书
《落花生》教学反思
2014/02/25 职场文书
货车司机岗位职责
2014/03/18 职场文书
心理学专业求职信
2014/06/16 职场文书
Go语言并发编程 sync.Once
2021/10/16 Golang