1. 程式人生 > 其它 >第十二集:序列化模組pickle

第十二集:序列化模組pickle

'''
序列化:轉化為而進行的過程或者反序列化的過程
1.把pyhont中的資料以文字或者二進位制的方式進行轉換還能反序列化
2.一般來說資料在程式與網路中傳輸和儲存時 需要以更加方便的形式驚醒儲存和傳輸
pickle模組提供的函式
dumps()序列化 可以把一個
loads()f反序列化
dump()把資料序列化並且寫入檔案
引數1 需要序列化的物件
引數2 寫入的檔案物件
pickle(序列化物件,寫入檔案的物件:fp)
load() 反序列化在一個檔案中讀取反序列化資料並且反序列化
'''

import pickle

vars = 'i lovee you'
res = pickle.dumps(vars)
print(res, type(res))
# 結果
# b'\x80\x04\x95\x0f\x00\x00\x00\x00\x00\x00\x00\x8c\x0bi lovee you\x94.' <class 'bytes'>

res = pickle.loads(res)
print(res)

vars = {'name': 'cyz', 'age': 20}
# 序列化資料
res = pickle.dumps(vars)
with open('./data.txt', 'wb') as p:
p.write(res)
# 反序列化資料
with open('./data.txt','rb') as w:
res = w.read()
ss= pickle.loads(res)
print(ss)
# 結果
# b'\x80\x04\x95\x0f\x00\x00\x00\x00\x00\x00\x00\x8c\x0bi lovee you\x94.' <class 'bytes'>
# i lovee you
# {'name': 'cyz', 'age': 20}
vars = {'name': 'cyz', 'age': 20}

with open('./data2.txt', 'wb') as p:
pickle.dump(vars,p)

with open('./data2.txt', 'rb') as p:
sd =pickle.load(p)
print(sd)