首页
学习
活动
专区
圈层
工具
发布
30 篇文章

七、python学习笔记-序列化-pickle

代码语言:javascript
复制
# pickle
"""
1、pickle是一个模块
2、pickle是一个序列化工具
3、pickle支持函数类型
    pickle导出的函数只是变量名(函数名并非整个函数),如果导入后使用需要在该项目下有这个函数
4、pickle导出导入时是bytes类型
"""
代码语言:javascript
复制
# 引入模块
import pickle

# pickle的dumps和dump,loads和load用法和json一样

# 将字典转换成pickle格式保存到文件
# 创建一个字典
dic = {1: 'a', 2: 'b', 3: 'c'}

# 创建文件对象
# pickle导出时是bytes类型,使用wb
f = open('pickle', 'wb')

# 将字典转换成pickle格式保存到文件
data = pickle.dumps(dic)
f.write(data)

# 关闭文件
f.close()

# 通过pickle文件读取数据,并打印
# 创建文件对象,pickle导入时是bytes类型,使用rb
f = open('pickle', 'rb')

# 通过pickle文件读取数据,并打印
data = f.read()
print(pickle.loads(data))

# 关闭文件
f.close()


# 将函数转换成pickle格式保存到文件
# 创建一个函数
def foo():
    print('abc')


# 创建文件对象
# pickle导出时是bytes类型,使用wb
f = open('pickle_fun', 'wb')

# 将字典转换成pickle格式保存到文件
data = pickle.dumps(foo)
f.write(data)

# 关闭文件
f.close()

# 通过pickle文件读取数据,并打印
# 创建文件对象,pickle导入时是bytes类型,使用rb
f = open('pickle_fun', 'rb')

# 通过pickle文件读取函数,并执行
data = f.read()

foo1 = pickle.loads(data)

foo1()

# 关闭文件
f.close()
下一篇
举报
领券