python中的pprint

2023-12-20 00:33:58

pprint的英文全称Data pretty printer,顾名思义就是让显示结果更漂亮。

print()pprint()都是python的打印模块,功能基本一样,唯一的区别就是pprint()模块打印出来的数据结构更加完整,每行为一个数据结构,更加方便阅读打印输出结果。

特别是对于特别长的数据打印,print()输出结果都在一行,不方便查看,而pprint()采用分行打印输出,所以对于数据结构比较复杂、数据长度较长的数据,适合采用pprint()打印方式。当然,一般情况多数采用print()

1、限制嵌套输出

对于非常深的数据结构,可能不要求输出包含所有细节。有可能数据没有是当地格式化,也可能格式化文本过大而无法管理,或者默写数据时多余的。

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参数可以控制美观打印机递归处理嵌套数据结构的深度。输出中未包含的层次由一个省略号表示

2、控制输出宽度

格式化文本的默认输出宽度为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'})]

宽度大小不能适应格式化数据结构时,如果斩断或转行会引入非法的语法,就不会进行截断或转行。

其他详细应用案例可参考:

  1. python中pprint模块详解——print()和pprint()两者的区别

  2. Python pprint | 超级好用的Python库,漂亮的打印,让json数据提取体验更好

文章来源:https://blog.csdn.net/2301_81159774/article/details/135096030
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。