Python3文件操作-序列化及反序列化-pickle模塊

目錄

1:獲取幫助文檔

2:pickle模塊主要方法

3:示例代碼


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)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章