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获取Linux系统下的本机IP地址代码分享
Nov 07 Python
python同时给两个收件人发送邮件的方法
Apr 30 Python
python中模块的__all__属性详解
Oct 26 Python
Go/Python/Erlang编程语言对比分析及示例代码
Apr 23 Python
python把数组中的数字每行打印3个并保存在文档中的方法
Jul 17 Python
Python3 安装PyQt5及exe打包图文教程
Jan 08 Python
Django框架搭建的简易图书信息网站案例
May 25 Python
Django后台admin的使用详解
Jul 08 Python
python读取配置文件方式(ini、yaml、xml)
Apr 09 Python
Django实现任意文件上传(最简单的方法)
Jun 03 Python
Python中使用subprocess库创建附加进程
May 11 Python
Python接口自动化之文件上传/下载接口详解
Apr 05 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实现递归无限级分类
2015/10/22 PHP
Json_decode 解析json字符串为NULL的解决方法(必看)
2017/02/17 PHP
ZendFramework2连接数据库操作实例
2017/04/18 PHP
PHP构造二叉树算法示例
2017/06/21 PHP
yii2学习教程之5种内置行为类详解
2017/08/03 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
分享十五个最佳jQuery 幻灯插件和教程
2010/03/27 Javascript
不同浏览器的怪癖小结
2010/07/11 Javascript
来自qq的javascript面试题
2010/07/24 Javascript
用于节点操作的API,颠覆原生操作HTML DOM节点的API
2010/12/11 Javascript
sogou地图API用法实例教程
2014/09/11 Javascript
Jquery结合HTML5实现文件上传
2015/06/25 Javascript
逐一介绍Jquery data()、Jquery stop()、jquery delay()函数(详)
2015/11/04 Javascript
JS 清除字符串数组中,重复元素的实现方法
2016/05/24 Javascript
浅析Javascript的自动分号插入(ASI)机制
2016/09/29 Javascript
vue2.0实现导航菜单切换效果
2017/05/08 Javascript
Angular 表单控件示例代码
2017/06/26 Javascript
easyui简介_动力节点Java学院整理
2017/07/14 Javascript
bootstrap select下拉搜索插件使用方法详解
2017/11/23 Javascript
JS实现HTML页面中动态显示当前时间完整示例
2018/07/30 Javascript
JS中比较两个Object数组是否相等方法实例
2019/11/11 Javascript
vue-cli3访问public文件夹静态资源报错的解决方式
2020/09/02 Javascript
jQuery实现放大镜案例
2020/10/19 jQuery
JS画布动态实现黑客帝国背景效果
2020/11/08 Javascript
浅谈Python中copy()方法的使用
2015/05/21 Python
Python爬虫包BeautifulSoup异常处理(二)
2018/06/17 Python
Python3简单实现串口通信的方法
2019/06/12 Python
python如何实现代码检查
2019/06/28 Python
基于HTML5 Canvas的3D动态Chart图表的示例
2017/11/02 HTML / CSS
Currentbody美国/加拿大:美容仪专家
2020/03/09 全球购物
娇韵诗香港官网:Clarins香港
2020/08/13 全球购物
最新远光软件笔试题面试题内容
2013/11/08 面试题
网络工程师职业规划
2014/02/10 职场文书
建筑节能汇报材料
2014/08/22 职场文书
2014年科协工作总结
2014/12/09 职场文书
BCL经典机 SONY ICF-5900W电路分析
2022/04/24 无线电