Python學習 pprint模組

2021-10-02 01:48:06 字數 3246 閱讀 2509

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

pprint模組定義了乙個名為prettyprinter的類,類的構造器如下:

class

pprint

.prettyprinter(indent=

1, width=

80, depth=

none

, stream=

none,*

, compact=

false

, sort_dicts=

true

)#方法構造乙個prettyprinter例項

#引數stream設定輸出流,若沒設定,則類預設設定輸出流為sys.stdout

#引數indent表示每個輸出的遞迴層的縮排值

#引數depth表示列印的資料結構層級數,若資料結構層級數太大,則將顯示...

#引數width表示輸出顯示的寬度

#引數compact為flase,則序列的每一項將分行顯示,若為true,則序列每一項盡可能在同一行顯示(width範圍內)

#引數sort_dicts為true,則字典按照keys排序輸出顯示,否則按照插入順序輸出顯示

範例:

>>

>

import pprint

>>

> stuff =

['spam'

,'eggs'

,'lumberjack'

,'knights'

,'ni'

]>>

> stuff.insert(

0, stuff[:]

)>>

> pp = pprint.prettyprinter(indent=4)

>>

> pp.pprint(stuff)[[

'spam'

,'eggs'

,'lumberjack'

,'knights'

,'ni'],

'spam'

,'eggs'

,'lumberjack'

,'knights'

,'ni'

]>>

> pp = pprint.prettyprinter(width=

41, compact=

true

)>>

> pp.pprint(stuff)[[

'spam'

,'eggs'

,'lumberjack'

,'knights'

,'ni'],

'spam'

,'eggs'

,'lumberjack'

,'knights'

,'ni'

]>>

> tup =

('spam',(

'eggs',(

'lumberjack',(

'knights',(

'ni',(

'dead',.

..('parrot',(

'fresh fruit',)

))))

)))>>

> pp = pprint.prettyprinter(depth=6)

>>

> pp.pprint(tup)

('spam',(

'eggs',(

'lumberjack',(

'knights',(

'ni',(

'dead',(

...)

))))

))

prettyprinter類提供的方法包括:

prettyprinter.pformat(

object

)#方法返回物件object的格式化輸出,但是不列印,格式引數為傳遞給類構造器的引數值

prettyprinter.pprint(

object

)#方法列印物件object的格式化輸出至類構建時指定的輸出流,輸出最後包含乙個新行

pprint模組提供了一些方法,實現pprint模組的功能:

pprint.pformat(

object

, indent=

1, width=

80, depth=

none,*

, compact=

false

, sort_dicts=

true

)#方法返回物件object的格式化輸出字串

pprint.pp(

object

,*args, sort_dicts=

false

,**kwargs)

#方法列印物件object的格式化輸出字串,輸出最後包括乙個換行

#引數args與kwargs將被傳送給pprint方法,作為輸出的格式引數

pprint.pprint(

object

, stream=

none

, indent=

1, width=

80, depth=

none,*

, compact=

false

, sort_dicts=

true

)#方法列印物件object的格式化輸出字串至指定的輸出流,輸出最後包括乙個換行

#該方法經常在python直譯器中代替print方法

範例:

>>

>

import pprint

>>

> stuff =

['spam'

,'eggs'

,'lumberjack'

,'knights'

,'ni'

]>>

> stuff.insert(

0, stuff)

>>

> pprint.pprint(stuff)

[withid=

...>

,'spam'

,'eggs'

,'lumberjack'

,'knights'

,'ni'

]

Python格式化輸出之pprint

簡介 pprint模組提供了列印出python資料結構類和方法。模組方法 建立乙個prettyprinter物件 indent 縮排,width 一行最大寬度,depth 列印的深度,這個主要是針對一些可遞迴的物件,如果超出指定depth,其餘的用 代替。eg a 1,2,3,4,5 a的深度就是2...

Python基礎學習 fileinput模組

資源 lib fileinput.py 該模組包含乙個幫助類,以及可用於在標準輸入 列表及檔案中快速迴圈寫入的函式。如果你僅僅只是想要讀取或寫入乙個檔案,請參照open 函式。典型的使用如下 importfileinput forlineinfileinput input process line ...

Python基礎學習 linecache模組

資源 lib linecache.py linecache模組允許它獲取python資源檔案的任一行。當系統試圖進行內部優化時,就會使用乙個快取記憶體。在通常情況下,從單一檔案中讀取多行是普遍存在的。這被traceback模組用於檢索格式化回溯的資源行。tokenize.open 函式被用於開啟檔案...