Python3的pickle模块及其使用

版权声明:本文为博主原创文章,未经博主允许不得转载。不准各种形式的复制及盗图 https://blog.csdn.net/qq_26816591/article/details/88671137

pickle模块进行序列化:


import pickle


# 不能在文件中查看写入的内容

def foo():
    print('ok')


list1 = [1, 2, 3, 5, 6, 7]

data = pickle.dumps(foo)  # 将函数序列化并写入 支持很多数据类型

data = pickle.dumps(list1)  # 列表 字典 函数 类 等
f = open('pickle', 'wb')  # 2进制模式 写入文件
f.write(data)
f.close()

 要点:

  • pickle 支持函数,类,列表,字典等数据的序列化
  • dumps() 只有这一个加载函数
  • 以二进制形式进行序列化 'wb'

pickle模块进行反序列化:


import pickle

f = open('pickle', 'rb')  # 2进制 模式读取
data = f.read()
data = pickle.loads(data)  # 获取数据

# data() # 执行获取到的函数会报错,因为内存地址发生变化了
print(data) # 如果是列表 或字典 正常打印

 要点:

  • 注意,函数在反序列化后,由于内存地址发生变化,不能直接执行
  • loads() 获取数据只有这一个函数
  • 一定是二进制模式 'rb'

猜你喜欢

转载自blog.csdn.net/qq_26816591/article/details/88671137