前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[816]python之pprint

[816]python之pprint

作者头像
周小董
发布2020-05-25 16:14:20
1K0
发布2020-05-25 16:14:20
举报
文章被收录于专栏:python前行者python前行者

安装

代码语言:javascript
复制
pip install pprint

pprint提供了以一种“pretty-print”的方式打印出任意python数据结构的模块。当然,如果不是python的基本数据类型,那么这种方式可能加载不出来。简单来讲,就是一种打印方式。

如果可以的话,将对象保留在一行上,如果宽度不合适,那么将它们分成多行。 需要调整宽度的话,构建PrettyPrinter对象。

模块方法:

代码语言:javascript
复制
class PrettyPrinter:
    def __init__(self, indent=1, width=80, depth=None, stream=None, *,
                 compact=False):
  • indent: 缩进,默认为1
  • width:宽度
  • depth:深度

打印的深度,这个主要是针对一些可递归的对象,如果超出指定depth,其余的用"…"代替。 eg: a=[1,2,[3,4,],5] a的深度就是2; b=[1,2,[3,4,[5,6]],7,8] b的深度就是3

  • stream: 指输出流对象,如果stream=None,那么输出流对象默认是sys.stdout
  • compact 如果compact为false(默认值),则长序列中的每个项目将在单独的行上进行格式化。如果compact为true,则将在每个输出行上格式化适合宽度的项目。

pprint.pformat(object,indent=1,width=80, depth=None)

返回格式化的对象字符串

pprint.pprint(object,stream=None,indent=1, width=80, depth=None)

输出格式的对象字符串到指定的stream,最后以换行符结束。

pprint.isreadable(object)

判断对象object的字符串对象是否可读

pprint.isrecursive(object)

判断对象是否需要递归的表示

代码语言:javascript
复制
eg: pprint.isrecursive(a)  --->False
    pprint.isrecursive([1,2,3])-->True

pprint.saferepr(object)

返回一个对象字符串,对象中的子对象如果是可递归的,都被替换成.这种形式。

代码语言:javascript
复制
>>> import pprint
>>> stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']
>>> stuff.insert(0, stuff[:])
>>> pp = pprint.PrettyPrinter()  #采用默认值
>>> pp.pprint(stuff)
[['spam', 'eggs', 'lumberjack', 'knights', 'ni'],
 'spam',
 'eggs',
 'lumberjack',
 'knights',
 'ni']

>>> pp = pprint.PrettyPrinter(indent=4)    #缩进为4
>>> pp.pprint(stuff)
[   ['spam', 'eggs', 'lumberjack', 'knights', 'ni'],
    'spam',
    'eggs',
    'lumberjack',
    'knights',
    'ni']

>>> tup = ('spam', ('eggs', ('lumberjack', ('knights', ('ni', ('dead',... ('parrot', ('fresh fruit',))))))))
>>> pp =pprint.PrettyPrinter(depth=6)    #深度为6,所有只显示了6层
>>> pp.pprint(tup)('spam', ('eggs', ('lumberjack', ('knights', ('ni', ('dead', (...)))))))

#2、格式化
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'}),]
result=pprint.pformat(data)
for key in result.splitlines():
    print key
 
'''
[(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'})]
'''

还有一些其他方法,可以参考官方文档说明: https://docs.python.org/2/library/pprint.html#module-pprint

参考:https://blog.csdn.net/Lisa_Ren_123/article/details/80206898 https://www.cnblogs.com/linwenbin/p/10777736.html https://www.zhangshengrong.com/p/q0Xpqgb61K/

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-05-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 模块方法:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档