Python3 pprint模块详解:PrettyPrinter参数与美化输出实战
本文详细介绍Python3中pprint模块的使用方法,重点解析PrettyPrinter类的核心参数,包括indent缩进、width宽度、depth深度及compact紧凑模式。通过代码示例展示如何控制输出格式、生成格式化字符串以及判断对象可读性,帮助开发者提升复杂数据结构的调试效率。
pprint模块概述与美化输出原理
概述
在使用Python内置的print函数时,复杂的数据结构或大量数据通常以单行形式输出,导致显示效果不佳且难以阅读。此时,利用pprint模块对数据结构对象进行美化输出,能显著提升可读性。
pprint方法概览
美化输出
PrettyPrinter类参数详解
我们可以通过pprint模块中的PrettyPrinter类来精细控制输出的格式,包括设置缩进、行宽以及打印深度等参数。其类定义如下:
class pprint.PrettyPrinter(indent = 1,width = 80,depth = None,stream = None,*,compact = False )
- indent 缩进
- width 宽度
- depth 打印深度
- stream 指输出流对象,stream = None输出流对象默认是sys.stdout
- compact 如果compact为false(默认值),则长序列中的每个项目将在单独的行上进行格式化。如果compact为true,则将在每个输出行上格式化适合宽度的项目。
import pprint
L = [str(i)*20 for i in range(10)]
pp = pprint.PrettyPrinter(indent=4)
pp.pprint(L)
print(L)
示例结果:
[ '00000000000000000000', '11111111111111111111', '22222222222222222222', '33333333333333333333', '44444444444444444444', '55555555555555555555', '66666666666666666666', '77777777777777777777', '88888888888888888888', '99999999999999999999'] ['00000000000000000000', '11111111111111111111', '22222222222222222222', '33333333333333333333', '44444444444444444444', '55555555555555555555', '66666666666666666666', '77777777777777777777', '88888888888888888888', '99999999999999999999']
生成格式化对象字符串
对象字符串
我们也可以将目标对象的格式化表示形式返回为字符串。 indent, width,depth和compact将PrettyPrinter 作为格式化参数传递给构造函数,定义类如下
L = [str(i)*20 for i in range(10)]
pp = pprint.pformat(L, indent=4)
print(pp)
print(L)
示例结果:
[ '00000000000000000000', '11111111111111111111', '22222222222222222222', '33333333333333333333', '44444444444444444444', '55555555555555555555', '66666666666666666666', '77777777777777777777', '88888888888888888888', '99999999999999999999'] ['00000000000000000000', '11111111111111111111', '22222222222222222222', '33333333333333333333', '44444444444444444444', '55555555555555555555', '66666666666666666666', '77777777777777777777', '88888888888888888888', '99999999999999999999']
格式化打印到输出流
格式化打印
输出格式的对象字符串到指定的输出流,最后以换行符结束,定义类如下
import pprint
L = [str(i)*20 for i in range(10)]
pprint.pprint(L, indent=4)
print(L)
示例结果:
[ '00000000000000000000', '11111111111111111111', '22222222222222222222', '33333333333333333333', '44444444444444444444', '55555555555555555555', '66666666666666666666', '77777777777777777777', '88888888888888888888', '99999999999999999999'] ['00000000000000000000', '11111111111111111111', '22222222222222222222', '33333333333333333333', '44444444444444444444', '55555555555555555555', '66666666666666666666', '77777777777777777777', '88888888888888888888', '99999999999999999999']
判断对象可读性
可读性
判断对象object的字符串对象是否可读,True可读,反之则反。
import pprint
L = [str(i)*20 for i in range(10)]
B = pprint.isreadable(L)
print(B)
示例结果:
True
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对本站的支持。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









