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的Bottle框架写一个简单的服务接口的示例
Aug 25 Python
Python网络编程中urllib2模块的用法总结
Jul 12 Python
Python中使用bidict模块双向字典结构的奇技淫巧
Jul 12 Python
Python+Turtle动态绘制一棵树实例分享
Jan 16 Python
Python 数据处理库 pandas进阶教程
Apr 21 Python
python环形单链表的约瑟夫问题详解
Sep 27 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
Jun 03 Python
Django如何实现上传图片功能
Aug 16 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
Jan 06 Python
详解python中groupby函数通俗易懂
May 14 Python
pandas处理csv文件的方法步骤
Oct 16 Python
详解Python中的Lock和Rlock
Jan 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
使用Appcan客户端自动更新PHP版本号(全)
2015/07/31 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
2016/11/05 PHP
javascript日期转换 时间戳转日期格式
2011/11/05 Javascript
用Javascript评估用户输入密码的强度(Knockout版)
2011/11/30 Javascript
修改jQuery Validation里默认的验证方法
2012/02/14 Javascript
Jquery插件编写简明教程
2014/03/25 Javascript
javascript学习笔记--数字格式类型
2014/05/22 Javascript
js匿名函数的调用示例(形式多种多样)
2014/08/20 Javascript
JavaScript操作cookie类实例
2015/03/31 Javascript
js显示当前日期时间和星期几
2015/10/22 Javascript
jQuery实现标题有打字效果的焦点图代码
2015/11/16 Javascript
关于Javascript回调函数的一个妙用
2016/08/29 Javascript
jQuery grep()方法详解及实例代码
2016/10/30 Javascript
jQuery页面弹出框实现文件上传
2017/02/09 Javascript
微信小程序中做用户登录与登录态维护的实现详解
2017/05/17 Javascript
Vue 2.0的数据依赖实现原理代码简析
2017/07/10 Javascript
Vue数字输入框组件的使用方法
2019/10/19 Javascript
[11:57]《一刀刀一天》第十七期:TI中国军团加油!
2014/05/26 DOTA
[02:05]2014DOTA2西雅图邀请赛 老队长全明星大猜想谁不服就按进显示器
2014/07/08 DOTA
python音频处理用到的操作的示例代码
2017/10/27 Python
python 使用值来排序一个字典的方法
2018/11/16 Python
python利用多种方式来统计词频(单词个数)
2019/05/27 Python
详解python中的time和datetime的常用方法
2019/07/08 Python
python函数参数(必须参数、可变参数、关键字参数)
2019/08/16 Python
django rest framework serializer返回时间自动格式化方法
2020/03/31 Python
在Django中自定义filter并在template中的使用详解
2020/05/19 Python
美国体育用品商店:Rally House(NCAA、NFL、MLB、NBA、NHL和MLS)
2018/01/03 全球购物
AT&T Wireless:手机、无限数据计划和配件
2018/06/03 全球购物
一家外企的面试题目(C/C++面试题,C语言面试题)
2014/03/24 面试题
ShellScript面试题一则-ShellScript编程
2014/06/24 面试题
会计专业自我鉴定范文
2013/10/06 职场文书
求职意向书范文
2014/04/01 职场文书
高校自主招生自荐信2015
2015/03/04 职场文书
《颐和园》教学反思
2016/02/19 职场文书
linux下安装redis图文详细步骤
2021/12/04 Redis
科普 | 业余无线电知识-波段篇
2022/02/18 无线电