简介
pprint模块 提供了打印出任何python数据结构类和方法。
模块方法:
1.class pprint.PrettyPrinter(indent=1,width=80,depth=None, stream=None)
创建一个PrettyPrinter对象
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:
>>> import pprint>>> l=[2,3,4]>>> pprint.isrecursive(l)False>>> l.append(l)>>> print l[2, 3, 4, [...]]>>> pprint.isrecursive(l)True>>>
6.pprint.saferepr(object)
返回一个对象字符串,对象中的子对象如果是可递归的,都被替换成<Recursionontypename withid=number>.这种形式。
PrettyPrinter 对象具有的方法与上面类似,不在赘述。
- import pprint
-
- data = (
- "this is a string", [1, 2, 3, 4], ("more tuples",
- 1.0, 2.3, 4.5), "this is yet another string"
- )
-
- pprint.pprint(data)
输出:
('this is a string', [1, 2, 3, 4], ('more tuples', 1.0, 2.3, 4.5), 'this is yet another string')
原文链接:
module提供了可以按照某个格式正确的显示python已知类型数据的一种方法,这种格式可被解析器解析, 又很易读。但是,如果已知格式的数据对象不是python的基础类型,这种表示方法就有可能加载失败。这种情况一般是对象为 files, sockets, classes, or instances are included, as well as many other built-in objects which are not representable as Python constants。
该方法输出将对象的输出分隔成单行显示,并在宽度设置不适合时,将其分成多行显示。
class pprint.PrettyPrinter(indent=1,width=80,depth=None,stream=None)
pprint. pformat ( object, indent=1, width=80, depth=None )仅仅想获得数据而不是输出数据也可以用pformat -
Return the formatted representation of object as a string. indent,width and depth will be passed to the constructor as formatting parameters.
pprint. pprint ( object , stream=None , indent=1 , width=80 , depth=None ) -
Prints the formatted representation of object on stream, followed by a newline.
pprint. isreadable ( object ) -
Determine if the formatted representation of object is “readable,” or can be used to reconstruct the value using . This always returns False for recursive objects.
- >>> import sys
- >>> import pprint
- >>> pprint.pprint(sys.path)
- ['D:/Python/tmp',
- 'D:\\Python\\tmp',
- 'C:\\Python27\\Lib\\idlelib',
- 'C:\\Python27\\lib\\site-packages\\zope.interface-4.0.0-py2.7-win32.egg',
- 'C:\\Python27\\lib\\site-packages\\pyopenssl-0.13-py2.7-win32.egg',
- 'C:\\Python27\\lib\\site-packages\\scrapy-0.14.4-py2.7.egg',
- 'C:\\Python27\\lib\\site-packages\\w3lib-1.2-py2.7.egg',
- 'C:\\Python27\\lib\\site-packages\\mysql_python-1.2.3-py2.7-win32.egg',
- 'C:\\Python27\\lib\\site-packages\\paramiko-1.9.0-py2.7.egg',
- 'C:\\Python27\\lib\\site-packages\\pycrypto-2.6-py2.7-win32.egg',
- 'C:\\Python27\\lib\\site-packages\\requests-2.0.0-py2.7.egg',
- 'C:\\Python27\\lib\\site-packages\\reportlab-2.7-py2.7-win32.egg',
- 'C:\\Windows\\system32\\python27.zip',
- 'C:\\Python27\\DLLs',
- 'C:\\Python27\\lib',
- 'C:\\Python27\\lib\\plat-win',
- 'C:\\Python27\\lib\\lib-tk',
- 'C:\\Python27',
- 'C:\\Python27\\lib\\site-packages',
- 'C:\\Python27\\lib\\site-packages\\wx-2.8-msw-unicode']
- >>> print sys.path
- ['D:/Python/tmp', 'D:\\Python\\tmp', 'C:\\Python27\\Lib\\idlelib', 'C:\\Python27\\lib\\site-packages\\zope.interface-4.0.0-py2.7-win32.egg', 'C:\\Python27\\lib\\site-packages\\pyopenssl-0.13-py2.7-win32.egg', 'C:\\Python27\\lib\\site-packages\\scrapy-0.14.4-py2.7.egg', 'C:\\Python27\\lib\\site-packages\\w3lib-1.2-py2.7.egg', 'C:\\Python27\\lib\\site-packages\\mysql_python-1.2.3-py2.7-win32.egg', 'C:\\Python27\\lib\\site-packages\\paramiko-1.9.0-py2.7.egg', 'C:\\Python27\\lib\\site-packages\\pycrypto-2.6-py2.7-win32.egg', 'C:\\Python27\\lib\\site-packages\\requests-2.0.0-py2.7.egg', 'C:\\Python27\\lib\\site-packages\\reportlab-2.7-py2.7-win32.egg', 'C:\\Windows\\system32\\python27.zip', 'C:\\Python27\\DLLs', 'C:\\Python27\\lib', 'C:\\Python27\\lib\\plat-win', 'C:\\Python27\\lib\\lib-tk', 'C:\\Python27', 'C:\\Python27\\lib\\site-packages', 'C:\\Python27\\lib\\site-packages\\wx-2.8-msw-unicode']
- >>> string = pprint.pformat(sys.path)
- >>> string
- "['D:/Python/tmp',\n 'D:\\\\Python\\\\tmp',\n 'C:\\\\Python27\\\\Lib\\\\idlelib',\n 'C:\\\\Python27\\\\lib\\\\site-packages\\\\zope.interface-4.0.0-py2.7-win32.egg',\n 'C:\\\\Python27\\\\lib\\\\site-packages\\\\pyopenssl-0.13-py2.7-win32.egg',\n 'C:\\\\Python27\\\\lib\\\\site-packages\\\\scrapy-0.14.4-py2.7.egg',\n 'C:\\\\Python27\\\\lib\\\\site-packages\\\\w3lib-1.2-py2.7.egg',\n 'C:\\\\Python27\\\\lib\\\\site-packages\\\\mysql_python-1.2.3-py2.7-win32.egg',\n 'C:\\\\Python27\\\\lib\\\\site-packages\\\\paramiko-1.9.0-py2.7.egg',\n 'C:\\\\Python27\\\\lib\\\\site-packages\\\\pycrypto-2.6-py2.7-win32.egg',\n 'C:\\\\Python27\\\\lib\\\\site-packages\\\\requests-2.0.0-py2.7.egg',\n 'C:\\\\Python27\\\\lib\\\\site-packages\\\\reportlab-2.7-py2.7-win32.egg',\n 'C:\\\\Windows\\\\system32\\\\python27.zip',\n 'C:\\\\Python27\\\\DLLs',\n 'C:\\\\Python27\\\\lib',\n 'C:\\\\Python27\\\\lib\\\\plat-win',\n 'C:\\\\Python27\\\\lib\\\\lib-tk',\n 'C:\\\\Python27',\n 'C:\\\\Python27\\\\lib\\\\site-packages',\n 'C:\\\\Python27\\\\lib\\\\site-packages\\\\wx-2.8-msw-unicode']"
- >>> print string
- ['D:/Python/tmp',
- 'D:\\Python\\tmp',
- 'C:\\Python27\\Lib\\idlelib',
- 'C:\\Python27\\lib\\site-packages\\zope.interface-4.0.0-py2.7-win32.egg',
- 'C:\\Python27\\lib\\site-packages\\pyopenssl-0.13-py2.7-win32.egg',
- 'C:\\Python27\\lib\\site-packages\\scrapy-0.14.4-py2.7.egg',
- 'C:\\Python27\\lib\\site-packages\\w3lib-1.2-py2.7.egg',
- 'C:\\Python27\\lib\\site-packages\\mysql_python-1.2.3-py2.7-win32.egg',
- 'C:\\Python27\\lib\\site-packages\\paramiko-1.9.0-py2.7.egg',
- 'C:\\Python27\\lib\\site-packages\\pycrypto-2.6-py2.7-win32.egg',
- 'C:\\Python27\\lib\\site-packages\\requests-2.0.0-py2.7.egg',
- 'C:\\Python27\\lib\\site-packages\\reportlab-2.7-py2.7-win32.egg',
- 'C:\\Windows\\system32\\python27.zip',
- 'C:\\Python27\\DLLs',
- 'C:\\Python27\\lib',
- 'C:\\Python27\\lib\\plat-win',
- 'C:\\Python27\\lib\\lib-tk',
- 'C:\\Python27',
- 'C:\\Python27\\lib\\site-packages',
- 'C:\\Python27\\lib\\site-packages\\wx-2.8-msw-unicode']
- >>>
- >>> stuff = ['spam','eggs','lumberjack','knight','ni']
- >>> pprint.pprint(stuff)
- ['spam', 'eggs', 'lumberjack', 'knight', 'ni']
- >>> print stuff
- ['spam', 'eggs', 'lumberjack', 'knight', 'ni']
- >>> stuff.insert(0,stuff)
- >>> pprint.pprint(stuff)
-
- [<Recursion on list with id=33573024>,
- 'spam',
- 'eggs',
- 'lumberjack',
- 'knight',
- 'ni']
- >>> print stuff
- [[...], 'spam', 'eggs', 'lumberjack', 'knight', 'ni']
- >>>
- >>> pprint.isreadable(stuff)
- False
- >>> pprint.isreadable(sys.path)
- True
- >>>
# This example demonstrates several uses of the pprint() function and its parameters.
如下例,依次为:
#list中包含tuple #按照指定深度来显示stuff内容 #The number of levels which may be printed is controlled by depth; if the data structure being printed is too deep, the next contained level is replaced by .... #The desired output width is constrained using the width parameter; the default is 80 characters. If a structure cannot be formatted within the constrained width, a best effort will be made.
- >>> tup = ('spam',('eggs',('lumberjack',)))
- >>> stuff = ['a'*5, tup, ['b'*5, 'c'*5],['c'*5, 'd'*5]]
- >>> stuff
- ['aaaaa', ('spam', ('eggs', ('lumberjack',))), ['bbbbb', 'ccccc'], ['ccccc', 'ddddd']]
- >>> pprint.pprint(stuff)
- ['aaaaa',
- ('spam', ('eggs', ('lumberjack',))),
- ['bbbbb', 'ccccc'],
- ['ccccc', 'ddddd']]
- >>> pprint.pprint(stuff,depth=3)
- ['aaaaa', ('spam', ('eggs', (...,))), ['bbbbb', 'ccccc'], ['ccccc', 'ddddd']]
- >>> pprint.pprint(stuff,depth=4)
- ['aaaaa',
- ('spam', ('eggs', ('lumberjack',))),
- ['bbbbb', 'ccccc'],
- ['ccccc', 'ddddd']]
- >>> pprint.pprint(stuff,depth=2)
- ['aaaaa', ('spam', (...)), ['bbbbb', 'ccccc'], ['ccccc', 'ddddd']]
- >>> pprint.pprint(stuff,width=40)
- ['aaaaa',
- ('spam', ('eggs', ('lumberjack',))),
- ['bbbbb', 'ccccc'],
- ['ccccc', 'ddddd']]
- >>> pprint.pprint(stuff,width=80)
- ['aaaaa',
- ('spam', ('eggs', ('lumberjack',))),
- ['bbbbb', 'ccccc'],
- ['ccccc', 'ddddd']]
- >>> pprint.pprint(stuff,width=3)
- ['aaaaa',
- ('spam',
- ('eggs',
- ('lumberjack',))),
- ['bbbbb',
- 'ccccc'],
- ['ccccc',
- 'ddddd']]
- >>>
原文链接: