Python使用pickle模組實現序列化功能示例

2023-03-19 01:25:42 字數 1167 閱讀 2343

python內建的pickle模組能夠將python物件序列成位元組流,也可以把位元組流反序列成物件。

import pickle

class student:

def __init__(self, name, age):

self.name = name

self.age = age

def say(self):

print("i am", self.name)

&gdbnqnt;>> t = student('tom', 23)

>>> t.say()

i am tom

>>>

>>> s**e_path = './tom_msg'

>>> with open(s**e_path, 'wb') as f: # 位元組流寫入

... pickle.dump(t, f) # 序列化資料儲存在檔案中

>>>

>>> with open(s**e_path, 'rb') as f: # 位元組流讀出

... after_t = picwww.cppcns.comkle.load(f) # 讀取檔案資訊反序列化成物件

...>>> after_t.__dict__

>>> after_t.say()

i am tom

>>>

>&gdbnqnt;>

>>> l = student('lisa', 23)

>>> serialized = pickle.dumps(l)

>>> serialized

b'\x80\x03c__main__\nstudent\nq\x00)\x81q\x01}q\x02(x\x04\x00\x00\x00nameq\x03x\x04程式設計客棧x00\x00\x00lisaq\x04x\x03\x00\x00\x0程式設計客棧0ageq\x05k\x17ub.'

>>> after_l = pickle.loads(serialized)

>>> after_l.say()

i am lisa

>>> after_l.__dict__

{'name': 'lisa', 'age': 23

如果比較複雜的操作(物件屬性更變,新增刪除),pickle模組可能會出問題,那時候應該結合copyreg來使用

python中的pickle模組

pickle模組可以接受幾乎所有的python物件,並且將其轉換成字串表示,該過程叫做封裝 從字串表示重構該物件稱為拆封.舉例 儲存變數 將多個物件儲存到同一個檔案中,pickle模組中有很多不同協議可以生成.pkl檔案 如果不確定,最好以二進位制檔案的形式讀取和寫入.f open model.pk...

python 3 中的pickle模組 阿波的部落格

只是說pickle模組的最簡單的使用,如果想要仔細學習pickle的話,可以找一下別的部落格,或者閱讀一下pickle的源 查閱一下文件都是可以的,那就先看一下如何找到pickle的源程式嘞.首先得到pickle的屬性和列表,確定其中含有這樣的一個屬性 file 然後選擇這個屬性,就可以得到他的源 ...

python中的pickle模組

pickle學習 很多漢字是自己猜測和腦補的,方便自己忘了來看 有5種協議 0 1 2 3 4,其中3,4分別是在python 3.0,3.4中新增的,不能被python 2.x支援 使用 dump 來序列化一個物件,使用 load 進行解碼 1.pickle.highest protocol 整數...

Python之pickle模組的使用詳解

file 檔名稱。protocol 序列化使用的協議。如果該項省略,則預設為0。如果為負值或highest protocol,則使用最高的協議版本。protocal 如果該項省略,則預設為0。如果為負值或highest protocol,則使用最高的協議版本。2 pickle模組用於將列表 元組 字...

python中的pickle模組

問題 pcikle模組是做什麼用的?加工資料的,可以用來存取結構化資料。舉個例子 一個字典a 用pickle.dump存到本地檔案,所存資料的結構就是字典,而普通的file.write寫入檔案的是字串。讀取時,pickle.load返回的是一個字典,file.read返回的是一個字串。如下 impo...

Python中使用pickle持久化物件

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

python中使用pickle進行序列化

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

Python 使用Pickle進行資料儲存和讀取

pickle 是一個 python 中,壓縮 儲存 提取 檔案的模組,字典和列表都是能被儲存的.但必須注意的是python2以ascii形式儲存,而在python3中pickle是使用轉換二進位制的資料壓縮方法儲存資料 所以,在儲存或者讀取資料的時候,開啟檔案應該使用 wb rb 的方式 impor...