目錄
pickle模塊提供了一種持久化功能,它能夠將Python中的對象(列表,字典,集合,類等)序列化之後以文件的形式存儲在磁盤上。同時也能夠以反序列化的方式把文件中的內容轉化爲Python中的對象。
1:獲取幫助文檔
import pickle
print(pickle.__doc__)
print(dir(pickle))
for item in dir(pickle):
print(item)
print(help(pickle.dumps))
2:pickle模塊主要方法
函數 | 說明 |
dump(object, file) | 將object對象序列化存入已經打開的file中。 |
dumps(object) -> string | 將obj對象序列化爲string形式,而不是存入文件中。 |
load(file) -> object | 將file中的對象序反列化讀出。 |
loads(string) -> object | 從string中讀出序列化前的obj對象。 |
3:示例代碼
# encoding=gbk
import pickle
dic = {234:'1234','ddd':[1,2,3,4],'ccc':{'33':900}}
print(type(dic),dic)
# 序列化,對象到bytes字符串
s= pickle.dumps(dic)
print(type(s),s)
#反序列化,bytes字符串到對象
dic2 = pickle.loads(s)
print(type(dic2),dic2)
# 序列化,對象到文件內容
f = open('pick-dict.pkl','wb')
pickle.dump(dic,f)
f.close()
#反序列化,文件內容到對象
f = open('pick-dict.pkl','rb')
dic2 = pickle.load(f)
f.close()
print(type(dic2),dic2)
print('*'*60)
# 對反序列化之後的對象進行修改,不會改變文件中的內容,需要進行再次序列化操作才能保存到文件中。
dic2['eee'] = '0000'
print(type(dic2),dic2)
f = open('pick-dict.pkl','rb')
dic2 = pickle.load(f)
f.close()
print(type(dic2),dic2)