pprint代替print更友好的打印调试信息

简介: pprint 是 “pretty printer” 的简写,“pretty” 的含义是 “漂亮的、美观的”,因此 pprint 的含义便是:漂亮的打印。这是个相当简单却有用的模块,主要用于打印复杂的数据结构对象,例如多层嵌套的列表、元组和字典等。

pprint 是 “pretty printer” 的简写,“pretty” 的含义是 “漂亮的、美观的”,因此 pprint 的含义便是:漂亮的打印。

这是个相当简单却有用的模块,主要用于打印复杂的数据结构对象,例如多层嵌套的列表、元组和字典等。

先看看 print() 打印的一个例子:

mylist = ["Beautiful is better than ugly.", "Explicit is better than implicit.", "Simple is better than complex.", "Complex is better than complicated."]

print(mylist)

['Beautiful is better than ugly.', 'Explicit is better than implicit.', 'Simple is better than complex.', 'Complex is better than complicated.']
这是一个简单的例子,全部打印在一行里。如果对象中的元素是多层嵌套的内容(例如复杂的 字典 数据),再打印出那肯定是一团糟的,不好阅读。

使用 pprint 模块的 pprint() 替代 print(),可以解决如下痛点:

设置合适的行宽度,作适当的换行
设置打印的缩进、层级,进行格式化打印
判断对象中是否有无限循环,并优化打印内容
基本使用

pprint(object, stream=None, indent=1, width=80, depth=None, *,compact=False)
默认的行宽度参数为 80,当打印的字符小于 80 时,pprint() 基本上等同于内置函数 print(),当字符超出时,它会作美化,进行格式化输出。

import pprint

mylist = ["Beautiful is better than ugly.", "Explicit is better than implicit.", "Simple is better than complex.", "Complex is better than complicated."]

pprint.pprint(mylist)

超出80字符,打印的元素是换行的

['Beautiful is better than ugly.',
'Explicit is better than implicit.',
'Simple is better than complex.',
'Complex is better than complicated.']
设置缩进

pprint.pprint(mylist, indent=4)

[ 'Beautiful is better than ugly.',

'Explicit is better than implicit.',
'Simple is better than complex.',
'Complex is better than complicated.']

设置打印行宽

mydict = {'students': [{'name':'Tom', 'age': 18},{'name':'Jerry', 'age': 19}]}

pprint.pprint(mydict)

正常打印

{'students': [{'age': 18, 'name': 'Tom'}, {'age': 19, 'name': 'Jerry'}]}

pprint.pprint(mydict, width=20)

行宽为 20

{'students': [{'age': 18,

           'name': 'Tom'},
          {'age': 19,
           'name': 'Jerry'}]}

pprint.pprint(mydict, width=70)

行宽为 70

{'students': [{'age': 18, 'name': 'Tom'},

          {'age': 19, 'name': 'Jerry'}]}

设置打印层级

newlist = [1, [2, [3, [4, [5]]]]]

pprint.pprint(newlist, depth=3)

超出的层级会用 ... 表示

[1, [2, [3, [...]]]]
用 pprint 替换 print

import pprint
print = pprint.pprint

mylist = ["Beautiful is better than ugly.", "Explicit is better than implicit.", "Simple is better than complex.", "Complex is better than complicated."]

print(mylist)

['Beautiful is better than ugly.',
'Explicit is better than implicit.',
'Simple is better than complex.',
'Complex is better than complicated.']
更多用法请查看官方文档
总体而言,pprint() 是 print() 的轻量级替代,简单实用,非常方便,而且还是 Python 标准库。

相关文章
|
Python
python pyqt5 cmd 命令行 控制台 打印 print 输出 显示打印内容 实时显示 界面
python pyqt5 cmd 命令行 控制台 打印 print 输出 显示打印内容 实时显示 界面
399 0
|
5月前
|
容器
打印
打印
59 0
|
7月前
|
编译器 开发工具 C语言
单一程序:打印 Hello World
【5月更文挑战第14天】单一程序:打印 Hello World。
35 1
打印
4.6 打印 4.6.1 分页符的插入及删除 1、插入水平分页符 选定要插入分页符位置的下一行,在“页面布局”选项卡的“页面设置”组单击“分隔符”,在出现的下拉列表中选择”插入分页符”命令 2、插入垂直分页符 选定要插入分页符位置的右侧列,在“页面布局”选项卡的“页面设置”组单击“分隔符”,在出现的下拉列表中选择”插入分页符”命令。 3、同时插入水平、垂直分页符 选定某单元格,在“页面布局”选项卡的“页面设置”组单击“分隔符”,在出现的下拉列表中选择“插入分页符”命令此时会在该单元格左边框和上边框位置同时插入水平、垂直分页符。 4、删除手动分页符 先选择紧邻水平分页符的下面行 (或该行
|
Python
笨办法学 Python--跟书练习九~打印 打印 打印
笨办法学 Python--跟书练习九~打印 打印 打印
110 0
笨办法学 Python--跟书练习九~打印 打印 打印
|
Python
Python输出异常信息(行号)
Python输出异常信息(行号)
318 0
|
C++ Python
Pytest----如何捕获标准输出和标准错误输出
Pytest----如何捕获标准输出和标准错误输出
1423 0
|
Python
beeprint:让你的调试打印更友好
beeprint:让你的调试打印更友好 推荐一个国人的开源项目 beeprint,可以更加漂亮的打印你的调试信息。对标 Python 标准库的 pprint。 下面我们就来看一下 beeprint 和 pprint 打印 Python 对象的对比。
2266 0