Python学习:pprint模块

简介

print与pprint模块都是Python的打印模块,其功能基本相同,但是区别是,pprint模块打印出来的数据结构更加的完整,更加方便阅读打印输出的结果,特别是对于特别长的数据打印。pprint可以采用分行打印输出,对于数据结构比较复杂,数据长度较长的数据,适合采用pprint打印方式。

pprint模块定义了一个名为PrettyPrinter的类,类的构造器如下:

class pprint.PrettyPrinter(indent=1, width=80, depth=None, stream=None, *, compact=False, sort_dicts=True)
#方法构造一个PrettyPrinter实例
#参数stream设定输出流,若没设定,则类默认设定输出流为sys.stdout
#参数indent表示每个输出的递归层的缩进值
#参数depth表示打印的数据结构层级数,若数据结构层级数太大,则将显示...
#参数width表示输出显示的宽度
#参数compact为Flase,则序列的每一项将分行显示,若为True,则序列每一项尽可能在同一行显示(width范围内)
#参数sort_dicts为True,则字典按照keys排序输出显示,否则按照插入顺序输出显示

范例:

>>> 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', ('lumberjack', ('knights', ('ni', ('dead', (...)))))))

PrettyPrinter类提供的方法包括:

PrettyPrinter.pformat(object)
#方法返回对象object的格式化输出,但是不打印,格式参数为传递给类构造器的参数值

PrettyPrinter.pprint(object)
#方法打印对象object的格式化输出至类构建时指定的输出流,输出最后包含一个新行

模块提供的方法

pprint模块提供了一些方法,实现pprint模块的功能:

pprint.pformat(object, indent=1, width=80, depth=None, *, compact=False, sort_dicts=True)
#方法返回对象object的格式化输出字符串

pprint.pp(object, *args, sort_dicts=False, **kwargs)
#方法打印对象object的格式化输出字符串,输出最后包括一个换行
#参数args与kwargs将被传送给pprint方法,作为输出的格式参数

pprint.pprint(object, stream=None, indent=1, width=80, depth=None, *, compact=False, sort_dicts=True)
#方法打印对象object的格式化输出字符串至指定的输出流,输出最后包括一个换行
#该方法经常在python解释器中代替print方法

范例:

>>> import pprint
>>> stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']
>>> stuff.insert(0, stuff)
>>> pprint.pprint(stuff)
[<Recursion on list with id=...>,
 'spam',
 'eggs',
 'lumberjack',
 'knights',
 'ni']
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值