Python pickle模塊用法實(shí)例
python的pickle模塊實(shí)現(xiàn)了基本的數(shù)據(jù)序列和反序列化。通過(guò)pickle模塊的序列化操作我們能夠?qū)⒊绦蛑羞\(yùn)行的對(duì)象信息保存到文件中去,永久存儲(chǔ);通過(guò)pickle模塊的反序列化操作,我們能夠從文件中創(chuàng)建上一次程序保存的對(duì)象。
基本接口:
pickle.dump(obj, file, [,protocol])
注解:將對(duì)象obj保存到文件file中去。
protocol為序列化使用的協(xié)議版本,0:ASCII協(xié)議,所序列化的對(duì)象使用可打印的ASCII碼表示;1:老式的二進(jìn)制協(xié)議;2:2.3版本引入的新二進(jìn)制協(xié)議,較以前的更高效。其中協(xié)議0和1兼容老版本的python。protocol默認(rèn)值為0。
file:對(duì)象保存到的類文件對(duì)象。file必須有write()接口, file可以是一個(gè)以'w'方式打開的文件或者一個(gè)StringIO對(duì)象或者其他任何實(shí)現(xiàn)write()接口的對(duì)象。如果protocol>=1,文件對(duì)象需要是二進(jìn)制模式打開的。
pickle.load(file)
注解:從file中讀取一個(gè)字符串,并將它重構(gòu)為原來(lái)的python對(duì)象。
file:類文件對(duì)象,有read()和readline()接口。
A Simple Code
#使用pickle模塊將數(shù)據(jù)對(duì)象保存到文件 import pickle
data1 = {'a': [1, 2.0, 3, 4+6j], 'b': ('string', u'Unicode string'), 'c': None}
selfref_list = [1, 2, 3]
selfref_list.append(selfref_list)
output = open('data.pkl', 'wb') # Pickle dictionary using protocol 0. pickle.dump(data1, output) # Pickle the list using the highest protocol available. pickle.dump(selfref_list, output, -1)
output.close()
#使用pickle模塊從文件中重構(gòu)python對(duì)象 import pprint, pickle
pkl_file = open('data.pkl', 'rb')
data1 = pickle.load(pkl_file)
pprint.pprint(data1)
data2 = pickle.load(pkl_file)
pprint.pprint(data2)
pkl_file.close()
相關(guān)文章
基于python opencv單目相機(jī)標(biāo)定的示例代碼
這篇文章主要介紹了基于python opencv單目相機(jī)標(biāo)定的實(shí)現(xiàn)代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-01-01python練習(xí)之曾經(jīng)很火的小人畫愛心表白代碼
小編有個(gè)好兄弟最近在追妹子,跟妹子打得火熱!就差臨門一腳了,這一jio我?guī)兔ρa(bǔ)上去了!他問(wèn)有沒(méi)有什么酷炫的表白方式,可以給人心動(dòng)的趕jio,表白的方式有許多種今天小編來(lái)教大家一個(gè)之前很火的小人畫愛心表白代碼2021-09-09python3 tkinter實(shí)現(xiàn)點(diǎn)擊一個(gè)按鈕跳出另一個(gè)窗口的方法
今天小編就為大家分享一篇python3 tkinter實(shí)現(xiàn)點(diǎn)擊一個(gè)按鈕跳出另一個(gè)窗口的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06python分段函數(shù)的實(shí)現(xiàn)示例
分段函數(shù)是一種數(shù)學(xué)函數(shù),它將定義域分成若干個(gè)區(qū)間,每個(gè)區(qū)間對(duì)應(yīng)一個(gè)函數(shù),本文主要介紹了python分段函數(shù)的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12Python web開發(fā)之用Tornado框架制作簡(jiǎn)易表白墻網(wǎng)站
這篇文章將用Python做Web開發(fā)。在Python當(dāng)中,WEB開發(fā)框架主要有三個(gè),本文將利用Tornado框架做一個(gè)簡(jiǎn)單的表白墻網(wǎng)站,感興趣的可以了解一下2022-02-02Python中關(guān)鍵字is與==的區(qū)別簡(jiǎn)述
這篇文章主要介紹了Python中關(guān)鍵字is與==的區(qū)別,對(duì)于Python初學(xué)者有一定的借鑒學(xué)習(xí)價(jià)值,需要的朋友可以參考下2014-07-07