Python学习笔记:pprint - 数据美化打印器
754 字
4 分钟
pprint (pretty printer) 模块提供了一种将任意 Python 数据结构“美化打印”的能力,以便将其用作解释器的输入。
pprintpprint.pprint(object, stream=None, indent=1, width=80, depth=None, *, compact=False, sort_dicts=True, underscore_numbers=False)pppprint.pp(object, stream=None, indent=1, width=80, depth=None, *, compact=False, sort_dicts=False, underscore_numbers=False)| 参数 | 类型 | 参数说明 |
object |
\\ | 要打印的对象。 |
stream |
file-like object |
一个文件型对象,可通过调用其 write() 方法将输出写入该对象。 如为 None (默认值),则使用 sys.stdout。 |
indent |
int |
要为每个嵌套层级添加的缩进量。 |
width |
int |
输出中每行所允许的最大字符数。 如果一个结构无法在宽度限制内被格式化,则将尽可能的接近。 |
depth |
int |
可被打印的嵌套层级数量。 如果要打印的数据结构具有过深的层级,则其包含的下一层级将用 ... 替换。 如为 None (默认值),则不会限制被格式化对象的层级深度。 |
compact |
bool |
控制长 序列 的格式化方式。 如为 False (默认值),则序列的每一项将被格式化为单独的行,否则在格式化每个输出行时将根据 width 限制容纳尽可能多的条目。 |
sort_dicts |
bool |
如为 True,则在格式化字典时将基于键进行排序,否则将按插入顺序显示它们(默认)。 |
underscore_numbers |
bool |
如为 True,则在格式化整数时将使用 _ 字符作为千位分隔符,否则将不显示下划线(默认)。 |
TIP
pprint函数是将sort_dicts设为True的pp函数的别名,它将自动按字典的键进行排序。
pformat将 object 的格式化表示形式作为字符串返回。
pprint.pformat(object, indent=1, width=80, depth=None, *, compact=False, sort_dicts=True, underscore_numbers=False)| 函数 | 说明 |
|---|---|
pprint.isreadable(object) | 确定 object 的格式化表示是否“可读”,或是否可被用来通过 eval() 重新构建对象的值。此函数对于递归对象总是返回 False |
pprint.isrecursive(object) | 确定 object 是否需要递归的表示 |
pprint.saferepr(object) | 返回 object 的字符串表示,并为某些通用数据结构提供防递归保护,包括 dict,list 和 tuple 或其未重载 __repr__ 的子类的实例 |
class pprint.PrettyPrinter(indent=1, width=80, depth=None, stream=None, *, compact=False, sort_dicts=True, underscore_numbers=False)参数的含义与 pprint() 的相同。注意它们的顺序有所不同。
PrettyPrinter 的实例具有下列方法:
PrettyPrinter.pformat(object) # 返回 object 格式化表示PrettyPrinter.pprint(object) # 在所配置的流上打印 object 的格式化表示,并附加一个换行符PrettyPrinter.isreadable(object) # 确定对象的格式化表示是否“可读”PrettyPrinter.isrecursive(object) # 确定对象是否需要递归表示PrettyPrinter.format(object, context, maxlevels, level)