鱼C论坛

 找回密码
 立即注册
查看: 3006|回复: 0

[学习笔记] 031永久存储:腌制一缸美味的泡菜

[复制链接]
发表于 2017-7-7 23:18:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1.pickle模块
pickle模块实现了基本的数据序列和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。
1)pickle.dump(obj,file,protocol=None,*,fix_imports=True)
参数说明:
obj:将要封装的对象
protocol:整型,协议版本号,支持版本号为0到HIGHEST_PROTOCOL,如果没有指定,默认为DEFAULT_PROTOCOL。如果指定为负数,则为HIGHEST_PROTOCOL.
file:obj将要写入的文件对象,file必须以二进制可写模式打开,即“wb”,该file参数必须有write()方法,该方法能够接受单字节的参数。
fix_imports:如果fix_imports为true,并且协议版本小于3,那么pickle将python3对应到python2。
2)pickle.load(file, *,fix_imports=True,encoding=“ASCII”,errors=“strict”)
从file中读取一个字符串,并将它重构为原来的python对象
file:必须以二进制可读模式打开,即“rb”,其余为可选参数,有read()和reading()接口等同于Unpickler(file).load()
  1. >>> import pickle                                         #导入模块
  2. >>> my_list = [123, 3.14, '小甲鱼',['another list']]   #定义一个列表
  3. >>> pickle_file = open('my_listpk1','wb')               #定义一个可写入的二进制文件
  4. >>> pickle.dump(my_list, pickle_file)                     #将复杂数据列表转换为二进制并写入文件内
  5. >>> pickle_file.close()                                             #关闭文档,数据才能从缓存区内保存到文件上
  6. >>> pickle_file = open('my_listpk1','rb')                #以只读二进制模式打开上述保存的二进制文件
  7. >>> my_list2 = pickle.load(pickle_file)                   #将文件内部的二进制代码转换为相应数据类型并返回
  8. >>> print(my_list2)
  9. [123, 3.14, '小甲鱼', ['another list']]
复制代码

评分

参与人数 1鱼币 +3 收起 理由
鱼小二 + 3 支持楼主!

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 11:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表