想要將python程式執行中得到的字串、列表、字典等資料,長久的儲存下來,而不是簡單的放入記憶體中關機斷電就丟失資料。
pickle模組就是專門用來完成此功能的模組,它可以將物件轉換為一種可以傳輸或儲存的格式。
它實現了基本的資料序列和反序列化,
通過pickle模組的序列化操作,我們能夠將程式中執行的物件資訊儲存到檔案中去,永久儲存;
通過pickle模組的反序列化操作,我們能夠從檔案中建立上一次程式儲存的物件。
序列化物件,將物件obj儲存到檔案file中去。引數protocol是序列化模式,預設是0(ascii協議,表示以文字的形式進行序列化),protocol的值還可以是1和2(1和2表示以二進位制的形式進行序列化。其中,1是老式的二進位制協議;2是新二進位制協議)。file表示儲存到的類檔案物件,file必須有write()介面,file可以是乙個以'w'開啟的檔案或者是乙個stringio物件,也可以是任何可以實現write()介面的物件。
反序列化物件,將檔案中的資料解析為乙個python物件。file中有read()介面和readline()介面。
import pickle
with open('frame_count_8.txt', 'r') as fr:
data = fr.read()
print(data)
with open('frame_count_8.pickle', 'wb') as fw:
pickle.dump(data, fw, pickle.highest_protocol)
with open('frame_count_8.pickle', 'rb') as fr:
data = pickle.load(fr)
print(data)
pickle庫的使用
pickle庫可以直接儲存資料結果和從pk檔案中讀取資料結構,相當於乙個很強大的全域性變數,特別是我在用框架之類的要讀取記憶陣列,但是因為框架會在程式之間頻繁的跳動,所有全域性變數會一直被初始化而不管用了,pickle庫就可以解決這個問題 將資料結構寫入檔案 with open d temp.pk ...
pickle模組的基本使用
python的pickle模組實現了基本的資料序列和反序列化。通過pickle模組的序列化操作我們能夠將程式中執行的物件資訊儲存到檔案中去,永久儲存 通過pickle模組的反序列化操作,我們能夠從檔案中建立上一次程式儲存的物件。基本介面 pickle.dump obj,file,protocol 註...
pickle庫的使用詳解
在 通過簡單示例來理解什麼是機器學習 這篇文章裡提到了pickle庫的使用,本文來做進一步的闡述。那麼為什麼需要序列化和反序列化這一操作呢?便於儲存。序列化過程將文字資訊轉變為二進位制資料流。這樣就資訊就容易儲存在硬碟之中,當需要讀取檔案的時候,從硬碟中讀取資料,然後再將其反序列化便可以得到原始的資...