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 相关文章推荐
django中的setting最佳配置小结
Nov 21 Python
Python3实现发送QQ邮件功能(文本)
Dec 15 Python
Python3.5.3下配置opencv3.2.0的操作方法
Apr 02 Python
pyqt5的QWebEngineView 使用模板的方法
Aug 18 Python
在python中利用GDAL对tif文件进行读写的方法
Nov 29 Python
django与小程序实现登录验证功能的示例代码
Feb 19 Python
Python2和Python3中@abstractmethod使用方法
Feb 04 Python
Python中的特殊方法以及应用详解
Sep 20 Python
Kmeans均值聚类算法原理以及Python如何实现
Sep 26 Python
python 解决函数返回return的问题
Dec 05 Python
python中把元组转换为namedtuple方法
Dec 09 Python
深入理解python多线程编程
Apr 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模板引擎SMARTY
2006/10/09 PHP
php将mysql数据库整库导出生成sql文件的具体实现
2014/01/08 PHP
PHP自动生成表单代码分享
2015/06/19 PHP
动态加载js文件 document.createElement
2006/10/14 Javascript
JS array 数组详解
2009/03/22 Javascript
jquery 输入框数字限制插件
2009/11/10 Javascript
js中prototype用法详细介绍
2013/11/14 Javascript
Javascript改变CSS样式(局部和全局)
2013/12/18 Javascript
javascript break指定标签打破多层循环示例
2014/01/20 Javascript
函数window.open实现关闭所有的子窗口
2015/08/03 Javascript
Bootstrap每天必学之导航
2015/11/26 Javascript
JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法
2016/06/05 Javascript
js正则表达式惰性匹配和贪婪匹配用法分析
2016/12/26 Javascript
JS判断微信扫码的方法
2017/08/07 Javascript
JScript实现地址选择功能
2017/08/15 Javascript
vue devtools的安装与使用教程
2018/08/08 Javascript
深入koa-bodyparser原理解析
2019/01/16 Javascript
vue中轮训器的使用
2019/01/27 Javascript
React实现类似淘宝tab居中切换效果的示例代码
2020/06/02 Javascript
jQuery插件实现图片轮播效果
2020/10/19 jQuery
Python 自动安装 Rising 杀毒软件
2009/04/24 Python
如何在sae中设置django,让sae的工作环境跟本地python环境一致
2017/11/21 Python
Django如何自定义分页
2018/09/25 Python
python实现字符串中字符分类及个数统计
2018/09/28 Python
python的常用模块之collections模块详解
2018/12/06 Python
Python程序包的构建和发布过程示例详解
2019/06/09 Python
Python生成指定数量的优惠码实操内容
2019/06/18 Python
python批量图片处理简单示例
2019/08/06 Python
PyChon中关于Jekins的详细安装(推荐)
2020/12/28 Python
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
房产公证委托书范本
2014/09/20 职场文书
放弃继承权公证书
2015/01/23 职场文书
欠款起诉书范文
2015/05/19 职场文书
大学生十八大感想
2015/08/11 职场文书
JS封装cavans多种滤镜组件
2022/02/15 Javascript
CSS文本阴影 text-shadow 悬停效果详解
2022/05/25 HTML / CSS