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实现简单socket程序在两台电脑之间传输消息的方法
Mar 13 Python
Python常用小技巧总结
Jun 01 Python
浅谈五大Python Web框架
Mar 20 Python
python去除字符串中的换行符
Oct 11 Python
python 简单备份文件脚本v1.0的实例
Nov 06 Python
浅谈Python用QQ邮箱发送邮件时授权码的问题
Jan 29 Python
python 接口测试response返回数据对比的方法
Feb 11 Python
Python基于xlrd模块操作Excel的方法示例
Jun 21 Python
Python将8位的图片转为24位的图片实现方法
Oct 24 Python
Python对象中__del__方法起作用的条件详解
Nov 01 Python
简单了解Python读取大文件代码实例
Dec 18 Python
Django获取model中的字段名和字段的verbose_name方式
May 19 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预定义常量
2006/12/25 PHP
php常用Stream函数集介绍
2013/06/24 PHP
PHP获取中英混合字符串长度的方法
2014/06/07 PHP
php格式文件打开的四种方法
2018/02/24 PHP
nodejs 后缀名判断限制代码
2011/03/31 NodeJs
用jquery实现自定义风格的滑动条实现代码
2011/04/26 Javascript
用dtree实现树形菜单 dtree使用说明
2011/10/17 Javascript
JQUERY 获取IFrame中对象及获取其父窗口中对象示例
2013/08/19 Javascript
javascript 函数声明与函数表达式的区别介绍
2013/10/05 Javascript
jquery分页插件jpaginate在IE中不兼容问题
2014/04/22 Javascript
jquery实现个人中心导航菜单效果和美观都非常不错
2014/09/02 Javascript
JavaScript获取网页表单action属性的方法
2015/04/02 Javascript
js字符串操作方法实例分析
2015/05/06 Javascript
Javascript中的方法和匿名方法实例详解
2015/06/13 Javascript
兼容各大浏览器的JavaScript阻止事件冒泡代码
2015/07/09 Javascript
javascript实现对表格元素进行排序操作
2015/11/18 Javascript
如何用js判断dom是否有存在某class的值
2017/02/13 Javascript
react-native DatePicker日期选择组件的实现代码
2017/09/12 Javascript
浅谈Koa服务限流方法实践
2017/10/23 Javascript
微信小程序按钮点击动画效果的实现
2019/09/04 Javascript
Chrome插件开发系列一:弹窗终结者开发实战
2020/10/02 Javascript
[02:54]DOTA2英雄基础教程 撼地者
2014/01/14 DOTA
[01:01]2020完美高校联赛(秋)西安落幕
2021/03/11 DOTA
使用 Python 获取 Linux 系统信息的代码
2014/07/13 Python
使用python3实现操作串口详解
2019/01/01 Python
从0开始的Python学习016异常
2019/04/08 Python
python读取csv文件指定行的2种方法详解
2020/02/13 Python
python 实现在shell窗口中编写print不向屏幕输出
2020/02/19 Python
CSS3 mask 遮罩的具体使用方法
2017/11/03 HTML / CSS
HTML5移动端开发中的Viewport标签及相关CSS用法解析
2016/04/15 HTML / CSS
新西兰最大、占有率最高的综合性药房:PharmacyDirect药房中文网
2020/11/03 全球购物
群众对十八届四中全会的期盼
2014/10/17 职场文书
廉洁自律个人总结
2015/02/14 职场文书
最美劳动诗,致敬所有的劳动者!
2019/07/12 职场文书
Pandas搭配lambda组合使用详解
2022/01/22 Python
CSS控制继承中的height能变为可继承吗
2022/06/10 HTML / CSS