python保存模块_Python使用Pickle模块进行数据保存和读取的讲解
pickle 是一個 python 中, 壓縮/保存/提取 文件的模塊,字典和列表都是能被保存的.
但必須注意的是python2以ASCII形式保存,而在python3中pickle是使用轉(zhuǎn)換二進(jìn)制的數(shù)據(jù)壓縮方法保存數(shù)據(jù)
所以,在保存或者讀取數(shù)據(jù)的時候,打開文件應(yīng)該使用‘wb' 'rb'的方式
import pickle
a = 'owoof'
with open('111.pkl', 'wb') as file:
pickle.dump(a, file)
在Pickle模塊中還有dumps()和loads()函數(shù),他們是直接實現(xiàn)一個二進(jìn)制和pickle表示對象的轉(zhuǎn)換,不用打開文件(這點與dump不同)
dumps()是將可讀對象轉(zhuǎn)換成二進(jìn)制文件,并返回二進(jìn)制文件,loads()是把二進(jìn)制文件轉(zhuǎn)換成可讀對象,并返回對象
在使用dump()和load()時,需要注意用with open 打開一次文件每調(diào)用一次dump()就會在文件中生成一次數(shù)據(jù), 當(dāng)再次with open 打開文件時, 之前寫數(shù)據(jù)調(diào)用了幾次dump()就最多只能調(diào)用load()幾次,而且每次dump()是和load()對應(yīng)的.
with open('poins_normal.pkl', 'rb') as file:with open('poins_normal.pkl', 'rb') as file:
class_1 = pickle.load(file)
# print(np.shape(class_1))
class_2 = pickle.load(file)
labels = pickle.load(file)
class_1 = pickle.load(file)
# print(np.shape(class_1))
class_2 = pickle.load(file)
labels = pickle.load(file)
如上,我事先寫了三次dump(),那么之后的三次load()是一一對應(yīng)的,如果我進(jìn)行第四次load()調(diào)用,編譯器會提示data? ran out of .
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
總結(jié)
以上是生活随笔為你收集整理的python保存模块_Python使用Pickle模块进行数据保存和读取的讲解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux解锁文件.user.ini,L
- 下一篇: android 支付宝月账单 统计图_记