Python 學習筆記 pickle

2021-09-01 11:21:26 字數 1644 閱讀 3416

pickle是python語言的乙個標準模組,安裝python後已包含pickle庫,不需要單獨再安裝。注意引包的時候,python2是cpickle庫,python3是pickle庫。

pickle模組實現了基本的資料序列化和反序列化。通過pickle模組的序列化操作我們能夠將程式中執行的物件資訊儲存到檔案中去,永久儲存;通過pickle模組的反序列化操作,我們能夠從檔案中建立上一次程式儲存的物件。

通常最一般的使用方式非常簡單,比如下面就是壓縮並儲存乙個字典的方式,字典和列表都是能被儲存的:

import pickle

a_dict =

}# pickle a variable to a file

file

=open

('pickle_example.pickle'

,'wb'

)pickle.dump(a_dict,

file

)file

.close(

)

『wb』 是以寫的形式開啟 『pickle_example.pickle』 這個檔案,然後 pickle.dump() 你要儲存的東西去這個開啟的檔案,最後關閉 file 你就會發現你的檔案目錄裡多了乙個 『pickle_example.pickle』 檔案,該檔案就是你儲存的字典。

這還是比較實用的,一般預處理後的資料會以字典的形式儲存下來,在訓練的時候直接load就行。提取的時候相對簡單點,同樣我們以讀的形式開啟那個檔案,然後 load 進乙個 python 的變數。

# reload a file to a variable

with

open

('pickle_example.pickle'

,'rb')as

file

: a_dict1 =pickle.load(

file

)print

(a_dict1)

在官方的介紹中,序列化操作的英文描述有好幾個單詞,如」serializing」, 「pickling」, 「serialization」, 「marshalling」 或者」flattening」等,它們都代表的是序列化的意思。相應的,反序列化操作的英文單詞也有好多個,如」de-serializing」, 「unpickling」, 「deserailization」等。為了避免混淆,一般用」pickling」/「unpickling」, 或者」serialization」/「deserailization」。

pickle模組是以二進位制的形式序列化後儲存到檔案中(儲存檔案的字尾為」.pkl」),不能直接開啟進行預覽。而python的另乙個序列化標準模組json,則是human-readable的,可以直接開啟檢視(例如在notepad++中檢視)。

pickle模組有兩類主要的介面,即序列化和反序列化。

# serializing

pickle.dump(

)pickler(

file

, protocol)

.dump(obj)

# deserializing

pickle.load(

)unpickler(

file

).load(

)

詳細的介紹見文件。

Python學習16 永續性儲存 pickle

python的pickle模組實現了基本的資料序列和反序列化。通過pickle模組的序列化操作我們能夠將程式中執行的物件資訊儲存到檔案中去,永久儲存 通過pickle模組的反序列化操作,我們能夠從檔案中建立上一次程式儲存的物件。基本方法 pickle.dump obj,file,protocol 註...

python教學筆記 python學習筆記(一)

1.eval 函式 eval是單詞evaluate的縮寫,就是 求.的值的意思。eval 函式的作用是把str轉換成list,dict,tuple.li 1 1,2,3 print eval li 1 di 1 print eval di 1 tu 1 2,4,6 print eval tu 1 執...

python學習筆記

coding utf 8 coding utf 8 應該像八股文一樣在每個指令碼的頭部宣告,這是個忠告 為了解決中文相容問題,同時你應該選擇支援 unicode 編碼的編輯器環境,保證在執行指令碼中的每個漢字都是使用 utf 8 編碼過的。cdays 5 exercise 3.py 求0 100之間...