Rinne's Blog

Back

pprint (pretty printer) 模块提供了一种将任意 Python 数据结构“美化打印”的能力,以便将其用作解释器的输入。

函数#

pprint#

pprint.pprint(object, stream=None, indent=1, width=80, depth=None, *, compact=False, sort_dicts=True, underscore_numbers=False)
python

pp#

pprint.pp(object, stream=None, indent=1, width=80, depth=None, *, compact=False, sort_dicts=False, underscore_numbers=False)
python
函数参数的相关说明
参数类型参数说明
object\要打印的对象。
streamfile-like object一个文件型对象,可通过调用其 write() 方法将输出写入该对象。 如为 None (默认值),则使用 sys.stdout
indentint要为每个嵌套层级添加的缩进量。
widthint输出中每行所允许的最大字符数。 如果一个结构无法在宽度限制内被格式化,则将尽可能的接近。
depthint可被打印的嵌套层级数量。 如果要打印的数据结构具有过深的层级,则其包含的下一层级将用 替换。 如为 None (默认值),则不会限制被格式化对象的层级深度。
compactbool控制长 序列 的格式化方式。 如为 False (默认值),则序列的每一项将被格式化为单独的行,否则在格式化每个输出行时将根据 width 限制容纳尽可能多的条目。
sort_dictsbool如为 True,则在格式化字典时将基于键进行排序,否则将按插入顺序显示它们(默认)。
underscore_numbersbool如为 True,则在格式化整数时将使用 _ 字符作为千位分隔符,否则将不显示下划线(默认)。

pformat#

object 的格式化表示形式作为字符串返回。

pprint.pformat(object, indent=1, width=80, depth=None, *, compact=False, sort_dicts=True, underscore_numbers=False)
python

其他常用函数#

函数说明
pprint.isreadable(object)确定 object 的格式化表示是否“可读”,或是否可被用来通过 eval() 重新构建对象的值。此函数对于递归对象总是返回 False
pprint.isrecursive(object)确定 object 是否需要递归的表示
pprint.saferepr(object)返回 object 的字符串表示,并为某些通用数据结构提供防递归保护,包括 dict,listtuple 或其未重载 __repr__ 的子类的实例

PrettyPrinter 对象#

class pprint.PrettyPrinter(indent=1, width=80, depth=None, stream=None, *, compact=False, sort_dicts=True, underscore_numbers=False)
python

参数的含义与 pprint() 的相同。注意它们的顺序有所不同。

PrettyPrinter 的实例具有下列方法:

PrettyPrinter.pformat(object)       # 返回 object 格式化表示
PrettyPrinter.pprint(object)        # 在所配置的流上打印 object 的格式化表示,并附加一个换行符
PrettyPrinter.isreadable(object)    # 确定对象的格式化表示是否“可读”
PrettyPrinter.isrecursive(object)   # 确定对象是否需要递归表示
PrettyPrinter.format(object, context, maxlevels, level)
python

参考资料#

  1. Python3.13 官方文档
  2. 一文弄懂Python中的pprint模块
©
Python学习笔记:pprint - 数据美化打印器
https://astro-pure.js.org/blog/learning/python-notes/pprint
Author Rinne
Published at 2025年9月16日
Comment seems to stuck. Try to refresh?✨