5 8 pprint 美觀地列印資料

2021-07-10 01:53:14 字數 3471 閱讀 6685

pprint模組提供了乙個美觀地列印

python

資料結構的方式。如果是要格式化的資料結構裡包含了非基本型別的資料,有可能這種資料型別不會被載入。比如資料型別是檔案、網路

socket

、類等。本模組格式化時,盡可能保持乙個物件一行表示,並且當超過允許寬度時也會自動換行表示。所有字典資料型別,都會先按鍵來排序,然後再進行格式化輸出。

class pprint.prettyprinter(indent=1, width=80, depth=none, stream=none, *, compact=false) 

構造乙個列印例項prettyprinter

。這個建構函式需要好幾個引數來配置列印引數。可以通過引數

stream

來設定流輸出物件,流輸出物件要實現

write()

的檔案協議。如果沒有指定流輸出物件,預設是輸出到

sys.stdout

。每行遞迴縮排的寬度是通過

indent

來設定,預設設定為

1。引數

width

是表示每行的寬度,如果超過一行的寬度就會換行輸出。引數

depth

是表示復合物件輸出的層次深度,預設是沒有限制,所有層次的物件都輸出。引數

compact

是表示換行時下一行是否輸出內容,還是跳過。

例子:#python 3.4

import pprint

stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']

stuff.insert(0, stuff[:])

print(stuff, '\n')

pp = pprint.prettyprinter(indent=4)

pp.pprint(stuff)

結果輸出如下:

[['spam', 'eggs', 'lumberjack', 'knights', 'ni'], 'spam', 'eggs', 'lumberjack', 'knights', 'ni'] 

[   ['spam', 'eggs', 'lumberjack', 'knights', 'ni'],

'spam',

'eggs',

'lumberjack',

'knights',

'ni']

pprint.pformat(object, indent=1, width=80, depth=none, *, compact=false) 

把object

物件格式化為字串返回。其它引數與上面的函式一樣。

例子:#python 3.4

import pprint

stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']

stuff.insert(0, stuff[:])

str = pprint.pformat(stuff)

print(str)

結果輸出如下:

[['spam', 'eggs', 'lumberjack', 'knights', 'ni'],

'spam',

'eggs',

'lumberjack',

'knights',

'ni']

pprint.pprint(object, stream=none, indent=1, width=80, depth=none, *, compact=false) 

列印所有格式化的物件到流物件stream

裡,並新增新換行符。如果

stream

為空,就使用預設的

sys.stdout

。其它引數與上面函式一樣。

例子:#python 3.4

import pprint

stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']

stuff.insert(0, stuff[:])

str = pprint.pprint(stuff)

結果輸出如下:

[['spam', 'eggs', 'lumberjack', 'knights', 'ni'],

'spam',

'eggs',

'lumberjack',

'knights',

'ni']

pprint.isreadable(object) 

判斷物件object

格式化表示的字串是否可讀,或者能使用

eval()

函式執行。如果可讀的返回

true

。如果物件是遞迴的,則返回

false

。例子:

#python 3.4

import pprint

stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']

stuff.insert(0, stuff[:])

print(pprint.isreadable(stuff))

結果輸出如下:

true

pprint.isrecursive(object) 

判斷物件object

是否遞迴表示。

例子:#python 3.4

import pprint

stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']

stuff.insert(0, stuff[:])

print(pprint.isrecursive(stuff))

結果輸出如下:

false

pprint.saferepr(object) 

針對遞迴物件進行顯示時提示遞迴字串。

例子:#python 3.4

import pprint

stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']

stuff.insert(0, stuff)

print(pprint.isrecursive(stuff))

print(pprint.saferepr(stuff))

結果輸出如下:

true

[, 'spam', 'eggs', 'lumberjack', 'knights', 'ni']

prettyprinter類主要有下面方法:

prettyprinter.pformat(object) 

prettyprinter.pprint(object) 

prettyprinter.isreadable(object) 

prettyprinter.isrecursive(object) 

prettyprinter.format(object, context, maxlevels, level) 

這些方法跟上面的函式使用是一樣的。

python pprint用法 pprint用法

pprint模組 提供了列印出任何python資料結構類和方法。模組方法 class pprint.prettyprinter indent 1,width 80,depth none,stream none 建立乙個prettyprinter物件 indent 縮排,width 一行最大寬度,de...

pprint模組介紹

簡介 pprint模組 提供了列印出任何python資料結構類和方法。1.class pprint.prettyprinter indent 1,width 80,depth none,stream none 建立乙個prettyprinter物件 indent 縮排,width 一行最大寬度,de...

Python學習 pprint模組

print與pprint模組都是python的列印模組,其功能基本相同,但是區別是,pprint模組列印出來的資料結構更加的完整,更加方便閱讀列印輸出的結果,特別是對於特別長的資料列印。pprint可以採用分行列印輸出,對於資料結構比較複雜,資料長度較長的資料,適合採用pprint列印方式。ppri...