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 相关文章推荐
pycharm 使用心得(七)一些实用功能介绍
Jun 06 Python
go和python变量赋值遇到的一个问题
Aug 31 Python
利用Python暴力破解zip文件口令的方法详解
Dec 21 Python
python实现画圆功能
Jan 25 Python
解决安装python库时windows error5 报错的问题
Oct 21 Python
利用Python正则表达式过滤敏感词的方法
Jan 21 Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
Aug 13 Python
opencv3/C++图像像素操作详解
Dec 10 Python
python给指定csv表格中的联系人群发邮件(带附件的邮件)
Dec 31 Python
python如何输出反斜杠
Jun 18 Python
python中用ggplot绘制画图实例讲解
Jan 26 Python
Python自动化实战之接口请求的实现
May 30 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 5.0 Pear安装方法
2006/12/06 PHP
php magic_quotes_gpc的一点认识与分析
2008/08/18 PHP
ThinkPHP使用心得分享-分页类Page的用法
2014/05/15 PHP
PHP生成等比缩略图类和自定义函数分享
2014/06/25 PHP
PHP-FPM实现性能优化
2016/03/31 PHP
php如何实现数据库的备份和恢复
2020/11/30 PHP
JQuery设置和去除disabled属性的5种方法总结
2013/05/16 Javascript
js遍历、动态的添加数据的小例子
2013/06/22 Javascript
js获取GridView中行数据的两种方法 分享
2013/07/13 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
2016/05/24 Javascript
JQuery 动态生成Table表格实例代码
2016/12/02 Javascript
微信小程序 自己制作小组件实例详解
2016/12/22 Javascript
Vue监听数据对象变化源码
2017/03/09 Javascript
vue 2.0 购物车小球抛物线的示例代码
2018/02/01 Javascript
微信小程序实现星星评价效果
2018/11/02 Javascript
vue中如何去掉空格的方法实现
2018/11/09 Javascript
react 原生实现头像滚动播放的示例
2020/04/21 Javascript
Antd中单个DatePicker限定时间输入范围操作
2020/10/29 Javascript
python基础入门学习笔记(Python环境搭建)
2016/01/13 Python
Python判断中文字符串是否相等的实例
2018/07/06 Python
使用python3实现操作串口详解
2019/01/01 Python
python自定义时钟类、定时任务类
2021/02/22 Python
python读取指定字节长度的文本方法
2019/08/27 Python
踩坑:pytorch中eval模式下结果远差于train模式介绍
2020/06/23 Python
解析Tensorflow之MNIST的使用
2020/06/30 Python
python 19个值得学习的编程技巧
2020/08/15 Python
PyQt5结合matplotlib绘图的实现示例
2020/09/15 Python
python中HTMLParser模块知识点总结
2021/01/25 Python
python如何修改文件时间属性
2021/02/05 Python
Clarks英国官方网站:全球领军鞋履品牌
2016/11/26 全球购物
Sneaker Studio波兰:购买运动鞋
2018/04/28 全球购物
FLIR美国官网:热成像, 夜视和红外摄像系统
2018/07/13 全球购物
销售督导岗位职责
2015/04/10 职场文书
2015年科室工作总结
2015/04/10 职场文书
运动会闭幕式致辞
2015/07/29 职场文书
Apache自带的ab压力测试工具的实现
2022/07/23 Servers