Python中的pickle模塊常用函數(shù)
1、序列化、反序列化介紹
序列化:把對(duì)象轉(zhuǎn)換為字節(jié)序列的過程稱為對(duì)象的序列化。
反序列化:把字節(jié)序列恢復(fù)為對(duì)象的過程稱為對(duì)象的反序列化。
2、pickle模塊說明
python中的pickle模塊實(shí)現(xiàn)了基本的數(shù)據(jù)序列化和反序列化。
通過pickle模塊的序列化操作能夠?qū)⒊绦蛑羞\(yùn)行的對(duì)象信息保存到文件中去,永久存儲(chǔ);通過pickle模塊的反序列化操作,能夠從文件中創(chuàng)建上一次程序保存的對(duì)象。
pickle模塊使用的數(shù)據(jù)格式是python專用的,能夠把python對(duì)象直接保存到文件,而不需要轉(zhuǎn)化為字符串,也不用底層的文件訪問操作把它們寫入到一個(gè)二進(jìn)制文件中。
3、pickle模塊常用函數(shù)
(1)pickle.dump(obj, file, [,protocol])
函數(shù)的功能:將obj對(duì)象序列化存入已經(jīng)打開的file中。
參數(shù):
obj:想要序列化的obj對(duì)象。
file:文件名稱。
protocol:序列化使用的協(xié)議。如果該項(xiàng)省略,則默認(rèn)為0。如果為負(fù)值或HIGHEST_PROTOCOL,則使用最高的協(xié)議版本。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pickle
# 將test對(duì)象序列化到文件中
def dump_test_data():
test = [1, 2, 3]
with open("test.pickle", "wb") as file:
pickle.dump(test, file)(2)pickle.load(file)
函數(shù)的功能:將file中的對(duì)象序列化讀出。
參數(shù):
file:文件名稱。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pickle
# 將文件中test對(duì)象序列化讀出
def load_test_data():
with open("test.pickle", "rb") as file:
test = pickle.load(file)
return test(3)pickle.dumps(obj[, protocol])
函數(shù)的功能:將obj對(duì)象序列化為string形式,而不是存入文件中。
參數(shù):
obj:想要序列化的obj對(duì)象。
protocal:如果該項(xiàng)省略,則默認(rèn)為0。如果為負(fù)值或HIGHEST_PROTOCOL,則使用最高的協(xié)議版本。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pickle
# 將test對(duì)象序列化為字符串形式
def dumps_test_data():
test = [1, 2, 3]
# dumps 將數(shù)據(jù)通過特殊的形式轉(zhuǎn)換為僅python語(yǔ)言識(shí)別的字符串
str_test = pickle.dumps(test)
print(str_test)(4)pickle.loads(string)
函數(shù)的功能:從string中讀出序列化前的obj對(duì)象。
參數(shù):
string:文件名稱。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pickle
# 從string中讀出序列化前的對(duì)象
def loads_test_data():
test = [1, 2, 3]
str_test = pickle.dumps(test)
# loads 將pickle數(shù)據(jù)轉(zhuǎn)化為python的數(shù)據(jù)結(jié)構(gòu)
loads_test = pickle.loads(str_test)
print(loads_test)到此這篇關(guān)于Python中的pickle模塊常用函數(shù)的文章就介紹到這了,更多相關(guān)Python的pickle模塊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python結(jié)合PyQt5實(shí)現(xiàn)GitHub文件/文件夾批量上傳工具
本文介紹了一個(gè)基于Python+PyQt5開發(fā)的GitHub文件上傳工具,支持可視化操作界面,無需命令行即可實(shí)現(xiàn)GitHub倉(cāng)庫(kù)的自動(dòng)創(chuàng)建和文件批量上傳,有需要的小伙伴可以了解下2026-06-06
python算法練習(xí)之兔子產(chǎn)子(斐波那切數(shù)列)
這篇文章主要給大家介紹python算法練習(xí)兔子產(chǎn)子,文章先進(jìn)行問題描述及分析然后設(shè)計(jì)算法最后再得出完整程序,需要的朋友可以參考一下 文章得具體內(nèi)容2021-10-10
Python通過poll實(shí)現(xiàn)異步IO的方法
這篇文章主要介紹了Python通過poll實(shí)現(xiàn)異步IO的方法,實(shí)例分析了poll方法實(shí)現(xiàn)異步IO的相關(guān)技巧,需要的朋友可以參考下2015-06-06
Python OpenCV實(shí)現(xiàn)鼠標(biāo)畫框效果
這篇文章主要為大家詳細(xì)介紹了Python OpenCV實(shí)現(xiàn)鼠標(biāo)畫框效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08
Python 實(shí)現(xiàn)LeNet網(wǎng)絡(luò)模型的訓(xùn)練及預(yù)測(cè)
本文將為大家詳細(xì)講解如何使用CIFR10數(shù)據(jù)集訓(xùn)練模型以及用訓(xùn)練好的模型做預(yù)測(cè)。代碼具有一定價(jià)值,感興趣的小伙伴可以學(xué)習(xí)一下2021-11-11
如何使用?Python?實(shí)現(xiàn)?DeepSeek?R1?本地化部署
文章介紹了如何使用Python實(shí)現(xiàn)DeepSeekR1本地化部署,包括硬件環(huán)境、Python環(huán)境、安裝依賴包、配置與運(yùn)行代碼等步驟,幫助讀者輕松部署并運(yùn)行本地AI助手,感興趣的朋友一起看看吧2025-02-02
pytorch torch.gather函數(shù)的使用
torch.gather 是 PyTorch 中用于在指定維度上通過索引從源張量中提取元素的函數(shù),它需要輸入張量、維度索引和索引張量,示例代碼展示了如何使用 torch.gather 從輸入張量中按索引提取元素,返回的結(jié)果張量形狀與索引張量相同2024-09-09

