博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python3内置模块之pprint让打印比print更美观
阅读量:6162 次
发布时间:2019-06-21

本文共 2860 字,大约阅读时间需要 9 分钟。

概述

在我们使用内置打印函数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 pprintL = [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, widthdepthcompactPrettyPrinter 作为格式化参数传递给构造函数,定义类如下 pprint.pformat(*object*,*indent = 1*,*width = 80*,*depth = None*,***,*compact = False *)[¶](https://docs.python.org/zh-cn/3.7/library/pprint.html#pprint.pformat "永久链接至目标")

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']复制代码

格式化打印

输出格式的对象字符串到指定的输出流,最后以换行符结束,定义类如下 pprint.pprint(object,stream = None,indent = 1,width = 80,depth = None,*,compact = False )

import pprintL = [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 pprintL = [str(i)*20 for i in range(10)]B = pprint.isreadable(L)print(B)复制代码

示例结果:

True复制代码

转载于:https://juejin.im/post/5cee8ebb518825332550ce0a

你可能感兴趣的文章
android开源项目框架大全:《IT蓝豹》
查看>>
boost库
查看>>
LeetCode——Longest Consecutive Sequence
查看>>
Python对字典(directory)按key和value排序
查看>>
Azure: 给 ubuntu 虚机挂载数据盘
查看>>
BugkuCTF web3
查看>>
僵尸进程、孤儿进程
查看>>
413 Request Entity Too Large
查看>>
VCL组件之重要的公用属性
查看>>
异常球称重问题
查看>>
java 十六进制数的转换
查看>>
Divide and conquer method
查看>>
[sharepoint]根据用户名获取该用户的权限
查看>>
多线程模拟实现生产者/消费者模型 (借鉴)
查看>>
iOS开发需要哪些图片?
查看>>
命令行远程链接MySQL
查看>>
logstash向elasticsearch写入数据,如何指定多个数据template
查看>>
Node.js:Web模块、文件系统
查看>>
【转】灵活运用 SQL SERVER FOR XML PATH
查看>>
WCF角色服务
查看>>