专栏首页python前行者[816]python之pprint

[816]python之pprint

安装

pip install pprint

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

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

模块方法:

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)

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

eg: pprint.isrecursive(a)  --->False
    pprint.isrecursive([1,2,3])-->True

pprint.saferepr(object)

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

>>> 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/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [895]Clickhouse

    Yandex在2016年6月15日开源了一个数据分析的数据库,名字叫做ClickHouse,这对保守俄罗斯人来说是个特大事。更让人惊讶的是,这个列式存储数据库的...

    周小董
  • Python操作Redis之设置key的过期时间

    对于一个已经存在的key,我们可以设置其过期时间,到了那个时间后,当你再去访问时,key就不存在了

    周小董
  • swiftclient操作

    文档:https://ecloud.10086.cn/op-help-center/develop/Swift Python SDK.pdf

    周小董
  • 让我们来谈谈python中的prettyprint和pprint

    相信我们都已经通过“Hello World”程序开始了我们的python之旅。在python中,它可以在一行中完成:

    HuangWeiAI
  • 标准库的自我介绍

    在 Python 被安装的时候,有不少模块随着安装到本地计算机上,这些东西让 Python 拥有了无限生机,能够轻而易举的使用很多模块,这些在安装 Python...

    Rocky0429
  • Python强大的自有模块——标准库

      “Python自带‘电池’”,这种说法流传已久。   在Python被安装的时候,就有不少模块也随着安装到本地的计算机上了。这些东西就如同“电力”一样,...

    py3study
  • Docker+Jenkins+GIT+Tomcat实战持续化集成

    | Docker-server | 172.20.6.20 |Docker宿主机

    KaliArch
  • android studio简单使用(A2):自定义模版简单实战

    复制EmptyActivity一份, 重命名为 DodoTemplateActivity

    dodo_lihao
  • 数据结构:栈的链式存储结构

    当单链表限定只能在头部进行插入和删除操作的时候,即为链栈,一般我们会将单链表的头指针和栈的栈顶指针top合二为一,通常对链栈来说,是不需要头节点的,因为我们维护...

    s1mba
  • <<、>>、>>>移位操作

    <<,有符号左移位,将运算数的二进制整体左移指定位数,低位用0补齐。 int leftShift = 10; System.out.println("十进制:...

    用户1148394

扫码关注云+社区

领取腾讯云代金券