Python对象的永久存储

1.使用Python的pickle模块

import pickle
class A:def __init__(self,name,a):self.name=nameself.a=adef rewrite(self,args):self.a=args
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
#将对象使用pickle模块转换成二进制文件然后写入文件中
#但此种方法无法直接更新对象文件的信息
#此时存入文件的应该是对象本身而不是内存地址
obj1=A("qw","1")
obj1=pickle.dumps(obj1)
with open("userinfo","ab")as f:f.write(obj1)
obj2=A("qa","2")
obj2=pickle.dumps(obj2)
with open("userinfo","ab")as f:f.write(obj2)
obj3=A("qs","3")
obj3=pickle.dumps(obj3)
with open("userinfo","ab")as f:f.write(obj3)#读取文件中的对象文件
#pickle.load()一次只读取一个对象文件
f=open("userinfo","rb")
while 1:try:obj = pickle.load(f)print(obj.a,obj)except:break
f.close()
f=open("userinfo","rb")
while 1:try:obj = pickle.load(f)print(obj.a,obj)except:break
f.close()

结果

#分别两次打开文件读取,对象内存地址会发生改变
<__main__.A object at 0x10c1375c0>
<__main__.A object at 0x10c137518>
<__main__.A object at 0x10c137940>
<__main__.A object at 0x10c1379b0>
<__main__.A object at 0x10c137630>
<__main__.A object at 0x10c1375c0>

可以将对象放进列表中再写入文件

如需修改对象时,将列表中的对象修改后再放回列表中最后再重新写入文件中

2.使用Python的shelve库。

其和Python内置的数据结构“字典”操作很类似不同点是shelve存储在外部文件中而不是存储在计算机内存中。

import shelve
class A:def __init__(self,name,a):self.name=nameself.a=adef rewrite(self,args):self.a=args
obj1=A("qw","1")
obj2=A("qa","2")
obj3=A("qs","3")
#写入文件
db=shelve.open("userinfo1")
db["qw"]=obj1
db["qa"]=obj2
db["qs"]=obj3
db.close()
#更新信息
db=shelve.open("userinfo1")
for k in db:print(db[k].a)a=db[k]a.a=12db[k]=a
db.close()
db=shelve.open("userinfo1")
for k in db:print(db[k].a)
db.close()

如何将Python对象保存在本地文件中?相关推荐

  1. python保存运行结果下次使用_将python运行结果保存至本地文件中的示例讲解

    一.建立文件,保存数据 1.使用python中内置的open函数 打开txt文件 #mode 模式 #w 只能操作写入 r 只能读取 a 向文件追加 #w+ 可读可写 r+可读可写 a+可读可追加 # ...

  2. mac挂adb,并把日志保存在本地文件中

    挂adb,使用logcat把log跑到文件中,并筛选出来 以下是挂adb touch .base_profile open .base_profile export ANDROID_HOME=sdk路 ...

  3. Python网络爬虫:爬取CSDN热搜数据 并保存到本地文件中

    hello,大家好,我是wangzirui32,今天我们来学习如何爬取CSDN热搜数据,并保存到Excel表格中. 开始学习吧! 学习目录 1. 数据包抓取 2. 编写代码 1. 数据包抓取 打开CS ...

  4. Java序列化bean保存到本地文件中

    File file = new File("D:\\softTemp\\student.out"); ObjectOutputStream objectOutputStream = ...

  5. Python爬取起点小说并保存到本地文件夹和MongoDB数据库中

    Python爬取起点小说并保存到本地MongoDB数据库中 工具:Python3.7 + Mongo4.0 + Pycharm """ 爬取起点小说<诡秘之主> ...

  6. 爬虫实战5:爬取全部穿越火线武器的图片以武器名称命名保存到本地文件

    申明:资料来源于网络及书本,通过理解.实践.整理成学习笔记. 文章目录 穿越火线官网 完整代码 运行结果 穿越火线官网 完整代码 import requests# 循环33次,官网武器库展示有33页 ...

  7. Spark常用RDD算子 - saveAsTextFile、saveAsObjectFile 可保存到本地文件或hdfs系统中

    saveAsTextFile 函数原型 def saveAsTextFile(path: String): Unit def saveAsTextFile(path: String, codec: C ...

  8. python list保存至csv文件

    python list保存至csv文件:https://blog.csdn.net/qq_43372138/article/details/84110624?utm_medium=distribute ...

  9. java通过url获取网页内容_Java语言通过URL读取网页数据并保存到本地文件(代码实例)...

    本文主要向大家介绍了Java语言通过URL读取网页数据并保存到本地文件(代码实例),通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. Java通过URL读取网页数据并保存到本地文件(代码 ...

最新文章

  1. (chap6 Http首部) 传输方式的分类
  2. leetcode 268. 丢失的数字(Java版)
  3. NSWindowController的初始化创建代码
  4. runas/cpau/lsrunase使用小结(以管理员运行指定程序)
  5. 尝试引用已删除的函数_如何在Excel中使用ROW函数
  6. ABAQUS2017安装问题:以下应用程序正在锁定 VC11 dll :C:\WINDOWS\system32\msvcr110.dll 继续前先终止这些应用程序。
  7. 基于 libdmtx和zxing的DM二维码识别总结
  8. MySQL基础教程4-SQL基础概念
  9. APMCon 2017|国美云服:混合云架构设计及性能实践
  10. 《金山词霸2009 牛津版》插件工具加载
  11. 25岁,一个北漂程序员,如果不想35 岁被淘汰,请把它当成一种信仰!
  12. 手动开启/关闭macOS HiDPI,让2k显示器完美适配macOS,解决紫屏问题
  13. 性能测试的实施及总结(二)
  14. 【MyBatis】| MyBatis的缓存
  15. 班尼机器人维修方法_工业机器人常见故障和修理方法
  16. 计算机类中级职称论文,计算机中级职称论文.docx
  17. 蚂蚁移动开发平台mPaaS:金融业务增长的新引擎
  18. 网上计算机能力提升研修心得,信息技术应用能力提升个人研修总结
  19. 基于机器学习的技术术语识别研究综述
  20. 实战技法 - 短线操盘 (6)

热门文章

  1. obs媒体源没有声音_最常用的直播软件OBS使用教程图解
  2. 深度学习——训练trick
  3. 一种新的无监督前景目标检测方法 A New Unsupervised Foreground Object Detection Method
  4. 用node写一个皖水公寓自动刷房源脚本
  5. 《2022年基础云服务行业数据报告》发布 华云数据凭借出色的产品技术能力和市场服务能力进入报告
  6. NPM私库搭建-verdaccio
  7. Vue3+element-plus实现后台管理系统
  8. vector 的 push_back[转]
  9. 2020-03-05T06:26:07.000+0000
  10. 【Linux-Node】Node环境安装到Linux系统