Python中 pickle 模塊的 dump() 和 load() 方法詳解
Python 的 pickle
模塊用于實現(xiàn)二進制序列化和反序列化。一個對象可以被序列化到文件中,然后可以從文件中恢復。
(1)pickle.dump()
定義: pickle.dump(obj, file, protocol=None, fix_imports=True, buffer_callback=None)
將 Python 對象序列化并寫入到文件對象。
- 參數(shù):
obj
(必需,任意 Python 對象): 要被序列化的對象。file
(必需,file object): 一個具有 write() 方法的文件類對象,pickle 數(shù)據(jù)將被寫入到這個對象中。protocol
(可選,整數(shù)): 指定 pickle 使用的協(xié)議版本,可以是 0 到最高支持的協(xié)議。默認是默認的協(xié)議。fix_imports
(可選,布爾值): 如果為 True,并且protocol
小于 3,pickle 將嘗試將新的 Python 3.x 名稱映射到 Python 2.x 中的模塊名稱。buffer_callback
(可選,callable): 用于優(yōu)化大型對象序列化的回調(diào)函數(shù)。
- 返回值: 無返回值。
- 用途: 將 Python 對象序列化保存到文件中。
- 代碼示例:
??????? import pickle # 假設我們有一個字典對象 data = {'a': [1, 2.0, 3, 4+6j], 'b': ('string', u'Unicode string'), 'c': None} # 打開一個文件用于寫入 with open('data.pickle', 'wb') as f: # 將字典對象序列化并保存到文件 pickle.dump(data, f)
(2)pickle.load()
定義: pickle.load(file, *, fix_imports=True, encoding='ASCII', errors='strict', buffers=None)
從文件對象中讀取序列化的數(shù)據(jù),并將其反序列化為 Python 對象。
- 參數(shù):
file
(必需,file object): 一個具有 read() 和 readline() 方法的文件類對象,將從該對象中讀取并反序列化 pickle 數(shù)據(jù)。fix_imports
(可選,布爾值): 是否為了兼容 Python 2.x 修復導入問題。encoding
(可選,字符串): 用于解碼 8 位字符串的編碼。errors
(可選,字符串): 設置如何處理編解碼錯誤。buffers
(可選,列表): 包含用于優(yōu)化序列化的緩沖區(qū)的列表。
- 返回值: 反序列化后的 Python 對象。
- 用途: 從文件中恢復 Python 對象。
- 代碼示例:
import pickle # 打開含有序列化數(shù)據(jù)的文件 with open('data.pickle', 'rb') as f: # 讀取并反序列化數(shù)據(jù) data_loaded = pickle.load(f) print(data_loaded)
到此這篇關于Python中 pickle 模塊的 dump() 和 load() 方法詳解的文章就介紹到這了,更多相關Python dump() 和 load() 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python 在OpenCV里實現(xiàn)仿射變換—坐標變換效果
這篇文章主要介紹了Python 在OpenCV里實現(xiàn)仿射變換—坐標變換效果,本文通過一個例子給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08Python實現(xiàn)新版正方系統(tǒng)滑動驗證碼識別
這篇文章主要介紹了基于Python實現(xiàn)新版正方系統(tǒng)滑動驗證碼識別算法和方案,文中示例代碼對我們的學習和工作有一定的幫助,感興趣的可以了解一下2021-12-12