pickle 是一個 python 中, 壓縮/保存/提取 文件的模塊,字典和列表都是能被保存的.
但必須注意的是python2以ASCII形式保存,而在python3中pickle是使用轉換二進制的數據壓縮方法保存數據
所以,在保存或者讀取數據的時候,打開文件應該使用‘wb' 'rb'的方式
import pickle
a = 'owoof'
with open('111.pkl', 'wb') as file:
pickle.dump(a, file)
在Pickle模塊中還有dumps()和loads()函數,他們是直接實現一個二進制和pickle表示對象的轉換,不用打開文件(這點與dump不同)
dumps()是將可讀對象轉換成二進制文件,并返回二進制文件,loads()是把二進制文件轉換成可讀對象,并返回對象
在使用dump()和load()時,需要注意用with open 打開一次文件每調用一次dump()就會在文件中生成一次數據, 當再次with open 打開文件時, 之前寫數據調用了幾次dump()就最多只能調用load()幾次,而且每次dump()是和load()對應的.
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()是一一對應的,如果我進行第四次load()調用,編譯器會提示data? ran out of .
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接