Python pprint模块

pprint模块可以漂亮地打印列表和字典。

PrettyPrinter()对象

用于构造示例。stream关键字参数用于设置输出流,流对象上使用的唯一方法是对象的write(),如果没有输入该参数,则表示标准输出。indent表示缩进数,默认为1。depth表示打印深度,如果数据太深,则使用...替代,默认没有深度限制。width控制打印宽度,默认为80个字符。compat默认为False,长序列会被分为多行,True表示尽可能一行输出。sort_dicts默认为True,字典会根据它的关键字排序。

import pprint

stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']
stuff.insert(0, stuff[:])
pp = pprint.PrettyPrinter(indent=4)
pp.pprint(stuff)
'''
[   ['spam', 'eggs', 'lumberjack', 'knights', 'ni'],
    'spam',
    'eggs',
    'lumberjack',
    'knights',
    'ni']
'''

pp = pprint.PrettyPrinter(width=41, compact=True)
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)
pp.pprint(tup)
# ('spam', ('eggs', ('lumberjact', (...))))

prettyPrinter对象也存在着一些方法

pformat()方法

返回对象的格式化表示。

pprint()方法

在流中打印对象表示。

isreadable()方法

判断对象是否可读。False表示是递归对象。如果递归的深度大于设置的depth参数,也返回False

isrecursive()方法

判断对象是否可以递归表示。

format()方法

返回3个值:对象的字符串表示,结果是否可读,结构是否可递归。

pprint()

格式化打印字符串,其中参数与PrettyPrinter对象相同。

pprint.pprint(stuff)

pformat()

以字符串的形式显示格式。其参数与PrettyPrinter相同。

pprint.pformat(stuff)

pp()

打印对象的格式化表示,并换行。sort_dicts默认为False,字典将以默认顺序显示,否则按关键字排序显示。

pprint.pp(stuff)

python 3.8新增内容

isreadable()

确定对象是否是可读的。

pprint.isreadable(stuff)

isrecursive()

确定对象是否需要递归表示。

pprint.isrecursive()

saferepr()

返回字符串,防止递归结构。如果存在递归项,则表示为<Recursion on typename with id=number>

pprint.saferepr(stuff)
# "[<Recursion on list with id=...>, 'spam', 'eggs', 'lumberjack', 'knights', 'ni']"

更详细信息参考python文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值