Python中pickle模塊的使用詳解
python的pickle模塊
python的pickle模塊提供了一個(gè)簡答的持久化功能,可以將對(duì)象以文件的形式存放在磁盤上。
pickle模塊實(shí)現(xiàn)了基本的數(shù)據(jù)序列化和反序列化 通過pickle模塊的序列化操作pickle.dump(obj, file, [,protocol]),我們能夠?qū)⒊绦蛑羞\(yùn)行的對(duì)象信息保存到文件中去,永久存儲(chǔ)。
通過pickle模塊的反序列化操作pickle.load(file),我們能從文件中創(chuàng)建上一次程序保存的對(duì)象
pickle模塊只能在python中使用,python中幾乎所有的數(shù)據(jù)類型(列表,字典,集合,類等)都可以用pickle來序列化, pickle序列化后的數(shù)據(jù),可讀性差,人一般無法識(shí)別。
注意: pickle模塊可以將任意的對(duì)象序列化成二進(jìn)制的字符串寫入到文件中。
還可以從文件中讀取并且轉(zhuǎn)為寫入時(shí)候類型。
在python3中pickle是使用轉(zhuǎn)換二進(jìn)制的數(shù)據(jù)壓縮方法保存數(shù)據(jù)
所以,在保存或者讀取數(shù)據(jù)的時(shí)候,打開文件應(yīng)該使用rb,wb,wrb,ab的方式
(1)pickle.dump(obj, file,[protocol=None])
存儲(chǔ):pickle.dump(obj, file,[protocol=None]) 序列化對(duì)象,將對(duì)象obj保存到文件file中去。
參數(shù)protocol是序列化模式,默認(rèn)是0(ASCII協(xié)議,表示以文本的形式進(jìn)行序列化),protocol的值還可以是1和2(1和2表示以二進(jìn)制的形式進(jìn)行序列化。
其中,1是老式的二進(jìn)制協(xié)議;2是新二進(jìn)制協(xié)議)。
file表示保存到的類文件對(duì)象,file必須有write()接口,file可以是一個(gè)以’w’打開的文件或者是一個(gè)StringIO對(duì)象,也可以是任何可以實(shí)現(xiàn)write()接口的對(duì)象。
import pickle #創(chuàng)建一個(gè)字典變量 data = {'a':[1,2,3],'b':('string','abc'),'c':'hello'} print(data) #以二進(jìn)制方式來存儲(chǔ),rb,wb,wrb,ab pic = open(r'C:\python數(shù)據(jù)分析\python基礎(chǔ)\testdata.pkl','wb') #將字典數(shù)據(jù)存儲(chǔ)為一個(gè)pkl文件 pickle.dump(data,pic) pic.close()
(2)pickle.load(file)
#讀取 pickle.load(file) pic2 = open(r'C:\python數(shù)據(jù)分析\python基礎(chǔ)\testdata.pkl','rb') data = pickle.load(pic2) print(data) print(type(data))
到此這篇關(guān)于Python中pickle模塊的使用詳解的文章就介紹到這了,更多相關(guān)Python中pickle模塊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用pyscript在網(wǎng)頁中撰寫Python程式的方法
本文主要介紹了使用pyscript在網(wǎng)頁中撰寫Python程式的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05基于Python實(shí)現(xiàn)繪制簡單動(dòng)圖的示例詳解
動(dòng)畫是一種高效的可視化工具,能夠提升用戶的吸引力和視覺體驗(yàn),有助于以富有意義的方式呈現(xiàn)數(shù)據(jù)可視化,本文的主要介紹在Python中兩種簡單制作動(dòng)圖的方法,需要的可以了解下2023-10-10python實(shí)現(xiàn)根據(jù)指定字符截取對(duì)應(yīng)的行的內(nèi)容方法
今天小編就為大家分享一篇python實(shí)現(xiàn)根據(jù)指定字符截取對(duì)應(yīng)的行的內(nèi)容方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-10-10python 實(shí)現(xiàn)超級(jí)瑪麗游戲
這篇文章主要介紹了python 實(shí)現(xiàn)超級(jí)瑪麗游戲,幫助大家更好的理解和使用python開發(fā)游戲,感興趣的朋友可以了解下2020-11-11通過Python實(shí)現(xiàn)在Word中添加和刪除書簽的操作
在Word中,書簽功能是一個(gè)非常實(shí)用的工具,它允許用戶快速定位到文檔中的特定位置,無論是進(jìn)行文檔審閱、編輯還是查找特定信息,書簽都能提供極大的便利,下面將詳細(xì)介紹如何通過Python在Word文檔中添加和刪除書簽,需要的朋友可以參考下2024-09-09解決安裝新版PyQt5、PyQT5-tool后打不開并Designer.exe提示no Qt platform plug
這篇文章主要介紹了解決安裝新版PyQt5、PyQT5-tool后打不開并Designer.exe提示no Qt platform plugin的問題,需要的朋友可以參考下2020-04-04python批量制作雷達(dá)圖的實(shí)現(xiàn)方法
本文通過實(shí)例代碼介紹了如何用python批量制作雷達(dá)圖的實(shí)現(xiàn)方法,下面一起來看看如何實(shí)現(xiàn)的。2016-07-07windows+vscode穿越跳板機(jī)調(diào)試遠(yuǎn)程代碼的圖文教程
本文通過圖文并茂的形式給大家介紹了windows+vscode穿越跳板機(jī)調(diào)試遠(yuǎn)程代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02Vscode使用matplotlib顯示圖像詳細(xì)圖文教程
最近使用python里的matplotlib庫繪圖,想在代碼結(jié)束時(shí)顯示圖片看看,下面這篇文章主要給大家介紹了關(guān)于Vscode使用matplotlib顯示圖像的相關(guān)資料,需要的朋友可以參考下2024-03-03