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

