# 对象序列化 pickle 二进制序列化格式化
# 是我们可以直观阅读的,而 pickle 不是;
# dumps()序列化,可以把一个 python的任意对象序列化成为一个二进制(将变量内容转换为二进制)
# Loads()反序列化,可以列化后的二进制数据反序列化为 python的对象(将二进制恢复成字符串)
# dump()序列化,把一个数据对象进行序列化并且写入到文件中
# load() 反序列化,在一个文件中读取序列化的数据,并且完成一个反序列化
import pickle
vars = "i heloo world" # b'\x80\x04\x95\x11\x00\x00\x00\x00\x00\x00\x00\x8c\ri heloo world\x94.'
vars = [1, 2, 3, 4] # b'\x80\x04\x95\r\x00\x00\x00\x00\x00\x00\x00]\x94(K\x01K\x02K\x03K\x04e.'
res = pickle.dumps(vars) # 序列化
print(res)
ress = pickle.loads(res) #反序列化
print(ress)
# -----------文件形式写入,读取-文件中的操作,普通形式-----------
my_list=[1,2,3,4,5,6,7,8,9]
my_lists=pickle.dumps(my_list)
with open('序列化内容.txt','wb') as fp:
fp.write(my_lists)
with open('序列化内容.txt','rb') as fp:
newlist=fp.read()
newlists=pickle.loads(newlist)
print(newlists)
# ===========使用pickle,提供的方法完成==load,dump==============
ss='12346'
with open('序列化文件操作data.txt','wb') as fp:
pickle.dump(ss,fp) #自动序列化后 写入文件中
with open('序列化文件操作data.txt','rb') as fp:
ss=pickle.load(fp)
print(ss)