python中pprint是干什么的_python之pprint模块简用

pprint 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。

该方法输出将对象的输出分隔成单行显示,并在宽度设置不适合时,将其分成多行显示。

classpprint.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,widthanddepth will be passed to thePrettyPrinter 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 anewline.

pprint.

isreadable

(

object

)

Determine if the formatted representation of object is “readable,” or can be used to reconstruct the value usingeval(). This always returnsFalse 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)#If stream is None, sys.stdout is used. This may be used in the interactive interpreter instead of a print statement

# for inspecting values.

[,

'spam',

'eggs',

'lumberjack',

'knight',

'ni']

>>> print stuff

[[...], 'spam', 'eggs', 'lumberjack', 'knight', 'ni']

>>>

>>> pprint.isreadable(stuff)#Determine if the formatted representation of object is “readable“

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']]

>>> 总的来说,感觉目前用处不是很大,没有什么特别的地方,就是对输出的一种格式化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值