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正则表达式匹配ip地址实例
Oct 09 Python
MySQL最常见的操作语句小结
May 07 Python
Python常用时间操作总结【取得当前时间、时间函数、应用等】
May 11 Python
Python构建网页爬虫原理分析
Dec 19 Python
python 简单照相机调用系统摄像头实现方法 pygame
Aug 03 Python
Django objects的查询结果转化为json的三种方式的方法
Nov 07 Python
在pycharm 中添加运行参数的操作方法
Jan 19 Python
pycharm中显示CSS提示的知识点总结
Jul 29 Python
Django url,从一个页面调到另个页面的方法
Aug 21 Python
python requests.get带header
May 05 Python
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
Mar 03 Python
Python循环之while无限迭代
Apr 30 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模拟SQL Server的两个日期处理函数
2006/10/09 PHP
克隆一个新项目的快捷方式
2013/04/10 PHP
解析WordPress中函数钩子hook的作用及基本用法
2015/12/22 PHP
使用vs code编辑调试php配置的方法
2019/01/29 PHP
JavaScript 对Cookie 操作的封装小结
2009/12/31 Javascript
jQuery对象和DOM对象使用说明
2010/06/25 Javascript
jQuery选择器之基本选择器与层次选择器
2015/03/03 Javascript
JS中的三个循环小结
2017/06/20 Javascript
element-ui 限制日期选择的方法(datepicker)
2018/05/16 Javascript
vue项目打包部署_nginx代理访问方法详解
2018/09/20 Javascript
使用pm2部署node生产环境的方法步骤
2019/03/09 Javascript
js常见遍历操作小结
2019/06/06 Javascript
Vue 列表上下过渡效果的实例代码
2019/06/25 Javascript
vue如何搭建多页面多系统应用
2020/06/17 Javascript
详解JavaScript作用域、作用域链和闭包的用法
2020/09/03 Javascript
vue中重定向redirect:‘/index‘,不显示问题、跳转出错的完美解决
2020/09/28 Javascript
Vue绑定用户接口实现代码示例
2020/11/04 Javascript
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:EE凭借法力虚空拿下4杀
2017/03/30 DOTA
pyqt4教程之messagebox使用示例分享
2014/03/07 Python
举例简单讲解Python中的数据存储模块shelve的用法
2016/03/03 Python
python实现定时提取实时日志程序
2018/06/22 Python
使用Python向C语言的链接库传递数组、结构体、指针类型的数据
2019/01/29 Python
python模拟鼠标点击和键盘输入的操作
2019/08/04 Python
Jupyter notebook快速入门教程(推荐)
2020/05/18 Python
Python flask框架实现浏览器点击自定义跳转页面
2020/06/04 Python
python的pip有什么用
2020/06/17 Python
Python 将代码转换为可执行文件脱离python环境运行(步骤详解)
2021/01/25 Python
AC Lens:购买隐形眼镜
2017/02/26 全球购物
英国门把手公司:Door Handle Company
2019/05/12 全球购物
电子商务专业推荐信范文
2013/12/02 职场文书
生产部管理制度
2014/01/31 职场文书
银行求职信范文
2014/05/26 职场文书
中学生关于梦想的演讲稿
2014/08/22 职场文书
2014教师年度工作总结
2014/11/10 职场文书
Python进度条的使用
2021/05/17 Python
Vue的列表之渲染,排序,过滤详解
2022/02/24 Vue.js