資料持久化 pickle 物件封存

2021-10-10 18:57:13 字數 1404 閱讀 9907

模組pickle實現了對乙個 python 物件結構的二進位制序列化反序列化。 「pickling」 是將 python 物件及其所擁有的層次結構轉化為乙個位元組流的過程,而 「unpickling」 是相反的操作,會將(來自乙個 binary file 或者 bytes-like object 的)位元組流轉化回乙個物件層次結構。 pickling(和 unpickling)也被稱為「序列化」, 「編組」或者 「平面化」。而為了避免混亂,此處採用術語 「封存(pickling)」 和 「解封(unpickling)」。

官方文件:

pickle庫常用的api如下:

函式說明

pickle.dump(obj, file)

將 obj 封存以後寫入已開啟的 file object。

pickle.dumps(obj)

將 obj 封存以後作為bytes型別直接返回,而不是將其寫入到檔案。

pickle.load(file)

從已開啟的 file object

檔案 中讀取封存後的物件,重建其中特定物件的層次結構並返回。

pickle.loads(data)

重建並返回乙個物件的封存表示形式 data 的物件層級結構。 data 必須為 bytes-like object

import pickle

list1 =[1

,2,3

,4,5

,6,7

,8,9

]with

open

("data.pkl"

,"wb"

)as f:

pickle.dump(list1,f)

# 將列表list1封存並寫入data.pkl檔案

with

open

("data.pkl"

,"rb"

)as f:

data = pickle.load(f)

print

(data)

# [1, 2, 3, 4, 5, 6, 7, 8, 9]

pf = pickle.dumps(list1)

# 將列表list1封存並轉化為位元組物件

print

(type

(pf))#

data = pickle.loads(pf)

print

(data)

# [1, 2, 3, 4, 5, 6, 7, 8, 9]

寫入本地的data.pkl檔案如下:

Pickle模組資料物件持久化操作

pickle模組的作用是持久化 序列化 的儲存資料。因此我先解釋下 什麼是序列化與反序列化 什麼是物件序列化和物件反序列化。通俗地講,它們的定義如下 序列化 把乙個物件儲存到乙個檔案或資料庫欄位中去 反序列化 在適當的時候把這個檔案再轉化成原來的物件使用 物件的序列化 把物件轉換為位元組序列的過程 ...

Python中使用pickle持久化物件

python中可以使用 pickle 模組將物件轉化為檔案儲存在磁碟上,在需要的時候再讀取並還原。pickle.dump obj,file protocol 這是將物件持久化的方法,引數的含義分別為 obj 要持久化儲存的物件 file 乙個擁有 write 方法的物件,並且這個 write 方法能...

python資料持久儲存 pickle模組

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