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 相关文章推荐
利用Anaconda完美解决Python 2与python 3的共存问题
May 25 Python
Python自动化开发学习之三级菜单制作
Jul 14 Python
Python2.7编程中SQLite3基本操作方法示例
Aug 09 Python
关于Python如何避免循环导入问题详解
Sep 14 Python
Python实现批量执行同目录下的py文件方法
Jan 11 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
May 10 Python
Atom Python 配置Python3 解释器的方法
Aug 28 Python
解决Python二维数组赋值问题
Nov 28 Python
Python如何实现小程序 无限求和平均
Feb 18 Python
Pycharm中安装wordcloud等库失败问题及终端通过pip安装的Python库如何添加到Pycharm解释器中(推荐)
May 10 Python
python -v 报错问题的解决方法
Sep 15 Python
Python 数据科学 Matplotlib图库详解
Jul 07 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
用Socket发送电子邮件
2006/10/09 PHP
我的论坛源代码(一)
2006/10/09 PHP
PHP 数组教程 定义数组
2009/10/23 PHP
PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍
2011/09/11 PHP
浅析php面向对象public private protected 访问修饰符
2013/06/30 PHP
php引用传值实例详解学习
2013/11/06 PHP
php开发工具有哪五款
2015/11/09 PHP
Fleaphp常见函数功能与用法示例
2016/11/15 PHP
PHP编程获取图片的主色调的方法【基于Imagick扩展】
2017/08/02 PHP
thinkPHP5框架中widget的功能与用法详解
2018/06/11 PHP
php微信公众号开发之快递查询
2018/10/20 PHP
【消息提示组件】,兼容IE6/7&&FF2
2007/09/04 Javascript
js中巧用cssText属性批量操作样式
2011/03/13 Javascript
Java File类的常用方法总结
2015/03/18 Javascript
vue实现类似淘宝商品评价页面星级评价及上传多张图片功能
2018/10/29 Javascript
JS正则表达式验证端口范围(0-65535)
2020/01/06 Javascript
在博客园博文中添加自定义右键菜单的方法详解
2020/02/05 Javascript
python线程锁(thread)学习示例
2013/12/04 Python
python切换hosts文件代码示例
2013/12/31 Python
Python类的继承用法示例
2019/01/31 Python
Pytorch 使用不同版本的cuda的方法步骤
2020/04/02 Python
Python爬虫之Selenium库的使用方法
2021/01/03 Python
python中re模块知识点总结
2021/01/17 Python
荷兰多品牌网上鞋店:Stoute Schoenen
2017/08/24 全球购物
儿科护士实习自我鉴定
2013/10/17 职场文书
小学英语教学反思
2014/01/30 职场文书
违反工作纪律检讨书
2014/02/15 职场文书
就业协议书的作用
2014/04/11 职场文书
班级年度安全计划书
2014/05/01 职场文书
医学专业自荐信
2014/06/14 职场文书
篮球友谊赛通讯稿
2014/10/10 职场文书
质监局领导班子践行群众路线整改方案
2014/10/26 职场文书
2014幼儿教师个人工作总结
2014/12/03 职场文书
JS异步堆栈追踪之为什么await胜过Promise
2021/04/28 Javascript
html实现弹窗的实例
2021/06/09 HTML / CSS
Nginx stream 配置代理(Nginx TCP/UDP 负载均衡)
2021/11/17 Servers