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标准库defaultdict模块使用示例
Apr 28 Python
使用Python的内建模块collections的教程
Apr 28 Python
基于python的Tkinter实现一个简易计算器
Dec 31 Python
python之文件的读写和文件目录以及文件夹的操作实现代码
Aug 28 Python
python实现闹钟定时播放音乐功能
Jan 25 Python
wxpython实现图书管理系统
Mar 12 Python
python爬虫之线程池和进程池功能与用法详解
Aug 02 Python
python Selenium实现付费音乐批量下载的实现方法
Jan 24 Python
python实现简单日期工具类
Apr 24 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
May 07 Python
在python中将list分段并保存为array类型的方法
Jul 15 Python
8段用于数据清洗Python代码(小结)
Oct 31 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简单实现HTTP和HTTPS跨域共享session解决办法
2015/05/27 PHP
php实现只保留mysql中最新1000条记录
2015/06/18 PHP
简单谈谈PHP面向对象之标识对象
2017/06/27 PHP
JQuery 写的个性导航菜单
2009/12/24 Javascript
jQuery插件 tabBox实现代码
2010/02/09 Javascript
ModelDialog JavaScript模态对话框类代码
2011/04/17 Javascript
extjs_02_grid显示本地数据、显示跨域数据
2014/06/23 Javascript
jQuery统计上传文件大小的方法
2015/01/24 Javascript
详解JavaScript的while循环的使用
2015/06/03 Javascript
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
基于JS实现导航条之调用网页助手小精灵的方法
2016/06/17 Javascript
每日十条JavaScript经验技巧(二)
2016/06/23 Javascript
Angular.js中下拉框实现渲染html的方法
2017/06/18 Javascript
javascript连接mysql与php通过odbc连接任意数据库的实例
2017/12/27 Javascript
Vue引用第三方datepicker插件无法监听datepicker输入框的值的解决
2018/01/27 Javascript
vue  directive定义全局和局部指令及指令简写
2018/11/20 Javascript
Vue插槽原理与用法详解
2019/03/05 Javascript
关于微信小程序获取小程序码并接受buffer流保存为图片的方法
2019/06/07 Javascript
[01:50]2014DOTA2西雅图邀请赛 专访欢乐周宝龙
2014/07/08 DOTA
[02:21]2018完美盛典章节片——初心
2018/12/17 DOTA
python自动化测试之连接几组测试包实例
2014/09/28 Python
python以环状形式组合排列图片并输出的方法
2015/03/17 Python
Python多线程编程(四):使用Lock互斥锁
2015/04/05 Python
Python selenium 父子、兄弟、相邻节点定位方式详解
2016/09/15 Python
Python实现全排列的打印
2018/08/18 Python
Django中如何使用sass的方法步骤
2019/07/09 Python
python3.7环境下安装Anaconda的教程图解
2019/09/10 Python
浅谈Python描述数据结构之KMP篇
2020/09/06 Python
python不同版本的_new_不同点总结
2020/12/09 Python
python利用pytesseract 实现本地识别图片文字
2020/12/14 Python
Hurley官方网站:扎根于海滩生活方式的全球青年文化品牌
2020/05/18 全球购物
保荐人的岗位职责
2013/11/19 职场文书
办公室内勤工作职责
2013/12/11 职场文书
教师演讲稿范文
2014/01/08 职场文书
校本培训个人总结
2015/02/28 职场文书
优秀大学生自荐信
2015/03/26 职场文书