51Testing软件测试论坛

标题: python 的 pprint 结构格式打印 [打印本页]

作者: 素简生香    时间: 2017-11-29 13:20
标题: python 的 pprint 结构格式打印
Python 模块 pprint 可以很方便的打印出任何 python数据结构类和方法:
代码尝鲜
>>> import pprint
>>> myData = ("this is a string", [1, 2, 3, 4, 5], ("more tuples", 1.0, 2.3, 5.1), "this is another very long string")
>>> pprint.pprint(myData)
('this is a string',
[1, 2, 3, 4, 5],
('more tuples', 1.0, 2.3, 5.1),
'this is another very long string')

pprint 方法解析
1.创建一个PrettyPrinter对象:class pprint.PrettyPrinter(indent=1,width=80,depth=None, stream=None)
indent -- 缩进, width -- 一行最大宽度, depth -- 打印的层数,这个主要是针对一些可递归的对象,如果超出指定depth,其余的用"..."代替。
eg: a=[1,2,[3,4,],5]  a的层数就是2; b=[1,2,[3,4,[5,6]],7,8] b的层数就是3

stream -- 指输出流对象,如果stream=None,那么输出流对象默认是sys.stdout
2.pprint.pformat(object,indent=1,width=80, depth=None) 返回格式化的对象字符串
3.pprint.pprint(object,stream=None,indent=1, width=80, depth=None) 输出格式的对象字符串到指定的stream,最后以换行符结束。
4.pprint.isreadable(object) 判断对象object的字符串对象是否可读
5.pprint.isrecursive(object) 判断对象是否需要递归的表示
eg: pprint.isrecursive(a)       -> False
pprint.isrecursive([1,2,3]) -> True

pprint 的代码详例  
#-file: pprintDemo.py
#-*- coding:utf-8 -*-

import pprint

tup = ('spam', ('eggs', ('lumberjack', ('knights', ('ni', ('dead',('parrot', ('fresh fruit',))))))))
stuff = ['a' * 10, tup, ['a' * 30, 'b' * 30], ['c' * 20, 'd' * 20]]

pprint.pprint(stuff)
print "层次设置" + '-'*30
pprint.pprint(stuff, depth=3)
print "行宽设置" + '-'*30
pprint.pprint(stuff, width=60)
print "缩进设置" + '-'*30
pprint.pprint(stuff, indent=2)






欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2