用pickle读写对象(Python)

用pickle模块来保存和加载对象。

pickle提供了一个简单的持久化功能。可以将对象以文件的形式存放在磁盘上。
pickle模块只能在python中使用,python中几乎所有的数据类型(列表,字典,集合,类等)都可以用pickle来序列化,pickle序列化后的数据,可读性差,人一般无法识别。

'''
将名为lyst的列表中对象保存到一个名为item.dat的文件中。
我们不需要知道列表中的对象是什么类型,有多少个对象。
python负责所有的转换细节。
也可以将整个列表写入一个文件中,而不是将其每个对象写入,
但是对那些基于链表结构的集合,我们不能这么做。
'''
import pickle

lyst = [60, "a string object", 2049]
fileobj = open('items.dat', 'wb')
for item in lyst:
    pickle.dump(item, fileobj)  # 保存对象用pickle.dump函数
fileobj.close()

任何对象都可以被封装(pickled),然后再保存到文件中。然后,随着你将其从文件中加载到程序,对它们进行拆封(unpickled)。pickle.dump()的第一个参数是要存储到文件中的对象,第二个参数是一个文件对象。

'''
pickle.load(),在文件抵达末尾时会引发一个异常。用try-except捕获
'''
import pickle
lyst = list()
fileobj = open('items.dat', 'rb')
while True:
    try:
        item = pickle.load(fileobj)
        lyst.append(item)
    except EOFError:
        fileobj.close()
        break
print(lyst)

pickle.load()将封装的对象从一个文件加载到一个程序中。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • pyton review 学习指南 https://www.zhihu.com/question/29138020...
    孙小二wuk阅读 4,773评论 0 2
  • 1/579文件IO文件介绍I/O流流的概念读写文件文件备份IO介绍大家应该听说过一句话:“好记性不如烂笔头”。不仅...
    清清子衿木子水心阅读 5,377评论 0 1
  • IO操作与读写文件 读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。不论哪种,一定...
    开发者也阅读 6,421评论 1 2
  • 本文摘自资深技术专家李运华在极客时间 App/ 小程序上开设的 50 期付费专栏《从 0 开始学架构》。更多架构文...
    E狼阅读 4,168评论 0 5
  • 2017年6月10日,咪咪、琴琴、小杰陪同我前往西宁两家书店完成赠书心愿,结果西宁一日游被西宁拆书家们安排的多彩有...
    明珠小雪阅读 4,179评论 0 6

友情链接更多精彩内容