pprint
的英文全称Data pretty printer
,顾名思义就是让显示结果更漂亮。
print()
和pprint()
都是python
的打印模块,功能基本一样,唯一的区别就是pprint()
模块打印出来的数据结构更加完整,每行为一个数据结构,更加方便阅读打印输出结果。
特别是对于特别长的数据打印,print()
输出结果都在一行,不方便查看,而pprint()
采用分行打印输出,所以对于数据结构比较复杂、数据长度较长的数据,适合采用pprint()
打印方式。当然,一般情况多数采用print()
。
对于非常深的数据结构,可能不要求输出包含所有细节。有可能数据没有是当地格式化,也可能格式化文本过大而无法管理,或者默写数据时多余的。
data = [(1,{'a':'A','b':'B','c':'C','d':'D'}),
(2,{'e':'E','f':'F','g':'G','h':'H',
'i':'I','j':'J','k':'K','l':'L'})]
from pprint import pprint
print('depth 1 :')
pprint(data,depth=1)
print('depth 2 :')
pprint(data,depth=2)
print('depth 3 :')
pprint(data,depth=3)
运行结果:
depth 1 :
[(...), (...)]
depth 2 :
[(1, {...}), (2, {...})]
depth 3 :
[(1, {'a': 'A', 'b': 'B', 'c': 'C', 'd': 'D'}),
(2,
{'e': 'E',
'f': 'F',
'g': 'G',
'h': 'H',
'i': 'I',
'j': 'J',
'k': 'K',
'l': 'L'})]
使用depth参数可以控制美观打印机递归处理嵌套数据结构的深度。输出中未包含的层次由一个省略号表示
格式化文本的默认输出宽度为80列。要调整这个宽度,可以再pprint()中使用参数width。
from pprint import pprint
for width in [80,5]:
print('WIDTH = ', width)
pprint(data,width = width)
运行结果:
WIDTH = 80
[(1, {'a': 'A', 'b': 'B', 'c': 'C', 'd': 'D'}),
(2,
{'e': 'E',
'f': 'F',
'g': 'G',
'h': 'H',
'i': 'I',
'j': 'J',
'k': 'K',
'l': 'L'})]
WIDTH = 5
[(1,
{'a': 'A',
'b': 'B',
'c': 'C',
'd': 'D'}),
(2,
{'e': 'E',
'f': 'F',
'g': 'G',
'h': 'H',
'i': 'I',
'j': 'J',
'k': 'K',
'l': 'L'})]
宽度大小不能适应格式化数据结构时,如果斩断或转行会引入非法的语法,就不会进行截断或转行。