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的Flask框架中实现全文搜索功能
Apr 20 Python
python定时执行指定函数的方法
May 27 Python
深入学习Python中的装饰器使用
Jun 20 Python
Anaconda多环境多版本python配置操作方法
Sep 12 Python
python3安装pip3(install pip3 for python 3.x)
Apr 03 Python
Django使用详解:ORM 的反向查找(related_name)
May 30 Python
解读python如何实现决策树算法
Oct 11 Python
Django CBV类的用法详解
Jul 26 Python
python sorted方法和列表使用解析
Nov 18 Python
如何使用python3获取当前路径及os.path.dirname的使用
Dec 13 Python
Python定义函数时参数有默认值问题解决
Dec 19 Python
详解python datetime模块
Aug 17 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中的string类型使用说明
2010/07/27 PHP
php设计模式 Mediator (中介者模式)
2011/06/26 PHP
PHP5常用函数列表(分享)
2013/06/07 PHP
7个鲜为人知却非常实用的PHP函数
2015/07/01 PHP
laravel-admin 在列表页添加自定义按钮的例子
2019/09/30 PHP
个人总结的一些关于String、Function、Array的属性和用法
2007/01/10 Javascript
Javascript中的变量使用说明
2010/05/18 Javascript
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
2011/08/28 Javascript
jquery easyui滚动条部分设置介绍
2013/09/12 Javascript
javascript去掉前后空格的实例
2013/11/07 Javascript
原生javascript实现隔行换色
2015/01/04 Javascript
JavaScript实现字符串与日期的互相转换及日期的格式化
2016/03/07 Javascript
react-router JS 控制路由跳转实例
2017/06/15 Javascript
ES6/JavaScript使用技巧分享
2017/12/14 Javascript
Taro集成Redux快速上手的方法示例
2018/06/21 Javascript
Vue+Element实现动态生成新表单并添加验证功能
2019/05/23 Javascript
vue 使用高德地图vue-amap组件过程解析
2019/09/07 Javascript
基于better-scroll 实现歌词联动功能的代码
2020/05/07 Javascript
CentOS 8.2服务器上安装最新版Node.js的方法
2020/12/16 Javascript
[40:17]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第一场
2018/04/06 DOTA
Python 时间操作例子和时间格式化参数小结
2014/04/24 Python
Python itertools模块详解
2015/05/09 Python
python开发之str.format()用法实例分析
2016/02/22 Python
详解python调度框架APScheduler使用
2017/03/28 Python
Python3实现的简单验证码识别功能示例
2018/05/02 Python
Python中的函数作用域
2018/05/07 Python
python rsync服务器之间文件夹同步脚本
2019/08/29 Python
python修改文件内容的3种方法详解
2019/11/15 Python
Python 读取有公式cell的结果内容实例方法
2020/02/17 Python
python 使用递归的方式实现语义图片分割功能
2020/07/16 Python
MAC Cosmetics官方网站:魅可专业艺术彩妆
2019/04/10 全球购物
英国著名的美容护肤和护发产品购物网站:Lookfantastic
2020/11/23 全球购物
工程管理英文求职信
2014/03/18 职场文书
协议书格式
2014/04/23 职场文书
2014年党员自我评议(5篇)
2014/09/12 职场文书
煤矿百日安全活动总结
2015/05/07 职场文书