PythonStudy——pickle 模块 (泡菜)

# 为什么有很多序列化和反序列化模块
# 因为程序中会出现各种各样的对象,如果要将这些对象持久化存储,必须先序列化
# 只有序列化存储后,必须有对应的反序列化,才能保证存储的数据能被重新读取使用

# 什么是序列化:对象 => 字符串
# 为什么序列化:存 或 传
# 为什么要反序列化:再次使用
# 为什么有很多序列化模块:存与取的算法可以多种多样,且要配套

import pickle
obj = {"name": 'Owen', "age": 18, "height": 180, "gender": ""}
# 序列化
r1 = pickle.dumps(obj)
print(r1)
with open('2.txt', 'wb') as wf:
    pickle.dump(obj, wf)

# 反序列化
with open('2.txt', 'rb') as rf:
    data = rf.read()
    o1 = pickle.loads(data)
    print(o1, type(o1))

    rf.seek(0, 0)  # 游标移到开头出现读
    o2 = pickle.load(rf)
    print(o2, type(o2))

猜你喜欢

转载自www.cnblogs.com/tingguoguoyo/p/10834443.html
今日推荐