Python之物件的永久儲存模組---pickle
經常遇到在Python程式執行中得到了一些字串、列表、字典等資料,想要長久的儲存下來,方便以後使用,而不是簡單的放入記憶體中關機斷電就丟失資料。
這個時候Pickle模組就派上用場了,它可以將物件轉換為一種可以傳輸或儲存的格式。
python的pickle模組實現了基本的資料序列和反序列化。通過pickle模組的序列化操作我們能夠將程式中執行的物件資訊儲存到檔案中去,永久儲存;通過pickle模組的反序列化操作,我們能夠從檔案中建立上一次程式儲存的物件。
pickle模組主要有dump()函式和load()函式
pickle.dump()方法:
這個方法的語法是:pickle.dump(物件, 檔案,[使用協議])
提示:將要持久化的資料“物件”,儲存到“檔案”中,使用有3種,索引0為ASCII,1是舊式2進位制,2是新式2進位制協議,不同之處在於後者更高效一些。
預設的話dump方法使用0做協議。
Pickle模組的load方法
load()方法的作用正好與上面的dump()方法相反,上面是序列化資料,這個方法作用是反序列化。
語法:pickle.load(檔案)
提示:從“檔案”中,讀取字串,將它們反序列化轉換為Python的資料物件,可以正常像操作資料型別的這些方法來操作它們
例項操作
1 儲存Python物件到檔案中
my_list = [123,3.14,'春秋大夢',[123,'rrr']] ##自己定義一個列表
>>> my_list
[123, 3.14, '春秋大夢', [123, 'rrr']]
>>> import pickle ##匯入pickle模組
>>> pickle_file = open('d:\\test\\天氣預報\\qianqi.pkl','wb') ##注意開啟方式一定要二進位制形式開啟
>>> pickle.dump(my_list, pickle_file) ##把列表永久儲存到檔案中
>>>pickle_file.close() ##關閉檔案
2 使用pickle模組從檔案中重構python物件
>>> import pickle
>>> pkl_file = open('d:\\test\\天氣預報\\qianqi.pkl','rb') ## 以二進位制方式開啟檔案
>>> pickle.load(pkl_file) ##用load()方法把檔案內容序列化為Python物件
[123, 3.14, '春秋大夢', [123, 'rrr']]
>>> pkl_file.close()
python的pickle模組實現了基本的資料序列和反序列化。通過pickle模組的序列化操作我們能夠將程式中執行的物件資訊儲存到檔案中去,永久儲存;通過pickle模組的反序列化操作,我們能夠從檔案中建立上一次程式儲存的物件。
pickle模組主要有dump()函式和load()函式
pickle.dump()方法:
這個方法的語法是:pickle.dump(物件, 檔案,[使用協議])
提示:將要持久化的資料“物件”,儲存到“檔案”中,使用有3種,索引0為ASCII,1是舊式2進位制,2是新式2進位制協議,不同之處在於後者更高效一些。
預設的話dump方法使用0做協議。
Pickle模組的load方法
load()方法的作用正好與上面的dump()方法相反,上面是序列化資料,這個方法作用是反序列化。
語法:pickle.load(檔案)
提示:從“檔案”中,讀取字串,將它們反序列化轉換為Python的資料物件,可以正常像操作資料型別的這些方法來操作它們
例項操作
1 儲存Python物件到檔案中
my_list = [123,3.14,'春秋大夢',[123,'rrr']] ##自己定義一個列表
>>> my_list
[123, 3.14, '春秋大夢', [123, 'rrr']]
>>> import pickle ##匯入pickle模組
>>> pickle_file = open('d:\\test\\天氣預報\\qianqi.pkl','wb') ##注意開啟方式一定要二進位制形式開啟
>>> pickle.dump(my_list, pickle_file) ##把列表永久儲存到檔案中
>>>pickle_file.close() ##關閉檔案
2 使用pickle模組從檔案中重構python物件
>>> import pickle
>>> pkl_file = open('d:\\test\\天氣預報\\qianqi.pkl','rb') ## 以二進位制方式開啟檔案
>>> pickle.load(pkl_file) ##用load()方法把檔案內容序列化為Python物件
[123, 3.14, '春秋大夢', [123, 'rrr']]
>>> pkl_file.close()