用pickle存儲(chǔ)Python的原生對(duì)象方法
在Python中存儲(chǔ)數(shù)據(jù)到文件中時(shí),簡(jiǎn)單的做法是調(diào)用open函數(shù)執(zhí)行文件寫入操作,但是這樣做的話,當(dāng)我們要重新讀取文件內(nèi)容時(shí),就會(huì)出現(xiàn)類型不匹配的情況,因?yàn)樽x取的都是字符串的形式,所以還需要進(jìn)行類型轉(zhuǎn)換,這樣不簡(jiǎn)潔。
或者使用eval函數(shù)把字符串轉(zhuǎn)換為對(duì)象,但是有時(shí)它過(guò)于強(qiáng)大,它會(huì)執(zhí)行Python的任何表達(dá)式,甚至做出威脅系統(tǒng)正常工作的表達(dá)式,這樣做不安全。
如果想存儲(chǔ)Python原生對(duì)象,但又無(wú)法信賴文件的數(shù)據(jù)來(lái)源,那么pickle模塊會(huì)是個(gè)理想的選擇。
pickle模塊是能夠讓我們直接在文件中存儲(chǔ)幾乎任何Python對(duì)象的高級(jí)工具,并不要求我們把字符串轉(zhuǎn)換來(lái)轉(zhuǎn)換去,像是個(gè)超級(jí)通用的數(shù)據(jù)格式化和解析工具。
demo.py:
D = {'name':'Allen', 'age':21} f = open('p_data.pkl','wb') import pickle pickle.dump(D,f) f.close() f=open('p_data.pkl','rb') e=pickle.load(f) print(e) print(type(e))
控制臺(tái)輸出:
{'name': 'Allen', 'age': 21} <class 'dict'> [Finished in 0.4s]
然后它會(huì)在指定路徑下生成p_data.pkl文件:
8003 7d71 0028 5804 0000 006e 616d 6571 0158 0500 0000 416c 6c65 6e71 0258 0300 0000 6167 6571 034b 1575 2e
如果控制臺(tái)提示”attributeError:'module' object has no attribute ‘dump'”,那么很可能是因?yàn)槟愕奈募麨椤眕ickle.py”,這與內(nèi)置模塊文件重名了,改一下就可以了。。
以上這篇用pickle存儲(chǔ)Python的原生對(duì)象方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Python Pickle 實(shí)現(xiàn)在同一個(gè)文件中序列化多個(gè)對(duì)象
- Python pickle模塊實(shí)現(xiàn)對(duì)象序列化
- Python使用pickle模塊儲(chǔ)存對(duì)象操作示例
- Python中的數(shù)據(jù)對(duì)象持久化存儲(chǔ)模塊pickle的使用示例
- Python pickle類庫(kù)介紹(對(duì)象序列化和反序列化)
- 從零學(xué)python系列之淺談pickle模塊封裝和拆封數(shù)據(jù)對(duì)象的方法
- Python3 pickle對(duì)象串行化代碼實(shí)例解析
相關(guān)文章
使用Dajngo 通過(guò)代碼添加xadmin用戶和權(quán)限(組)
這篇文章主要介紹了使用Dajngo 通過(guò)代碼添加xadmin用戶和權(quán)限(組),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5工具欄控件QToolBar的詳細(xì)使用方法與實(shí)例
這篇文章主要介紹了python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5工具欄控件QToolBar的詳細(xì)使用方法與實(shí)例,需要的朋友可以參考下2020-02-02淺談Pycharm中的Python Console與Terminal
今天小編就為大家分享一篇淺談Pycharm中的Python Console與Terminal,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01Python操作MySQL數(shù)據(jù)庫(kù)實(shí)例詳解【安裝、連接、增刪改查等】
這篇文章主要介紹了Python操作MySQL數(shù)據(jù)庫(kù),結(jié)合實(shí)例形式詳細(xì)分析了Python操作mysql數(shù)據(jù)庫(kù)的安裝、連接、增刪改查等相關(guān)實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下2020-01-01Win10下安裝CUDA11.0+CUDNN8.0+tensorflow-gpu2.4.1+pytorch1.7.0+p
這篇文章主要介紹了Win10下安裝CUDA11.0+CUDNN8.0+tensorflow-gpu2.4.1+pytorch1.7.0+paddlepaddle-gpu2.0.0,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03python函數(shù)也可以是一個(gè)對(duì)象,可以存放在列表中并調(diào)用方式
這篇文章主要介紹了python函數(shù)也可以是一個(gè)對(duì)象,可以存放在列表中并調(diào)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02Python中轉(zhuǎn)換角度為弧度的radians()方法
這篇文章主要介紹了Python中轉(zhuǎn)換角度為弧度的radians()方法,是Python入門中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-05-05Python、 Pycharm、Django安裝詳細(xì)教程(圖文)
這篇文章主要介紹了Python、 Pycharm、Django安裝詳細(xì)教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04Python中if __name__ == "__main__"詳細(xì)解釋
這篇文章主要介紹了Python中if __name__ == "__main__"詳細(xì)解釋,需要的朋友可以參考下2014-10-10