如何将Python对象保存在本地文件中?
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对象保存在本地文件中?相关推荐
- python保存运行结果下次使用_将python运行结果保存至本地文件中的示例讲解
一.建立文件,保存数据 1.使用python中内置的open函数 打开txt文件 #mode 模式 #w 只能操作写入 r 只能读取 a 向文件追加 #w+ 可读可写 r+可读可写 a+可读可追加 # ...
- mac挂adb,并把日志保存在本地文件中
挂adb,使用logcat把log跑到文件中,并筛选出来 以下是挂adb touch .base_profile open .base_profile export ANDROID_HOME=sdk路 ...
- Python网络爬虫:爬取CSDN热搜数据 并保存到本地文件中
hello,大家好,我是wangzirui32,今天我们来学习如何爬取CSDN热搜数据,并保存到Excel表格中. 开始学习吧! 学习目录 1. 数据包抓取 2. 编写代码 1. 数据包抓取 打开CS ...
- Java序列化bean保存到本地文件中
File file = new File("D:\\softTemp\\student.out"); ObjectOutputStream objectOutputStream = ...
- Python爬取起点小说并保存到本地文件夹和MongoDB数据库中
Python爬取起点小说并保存到本地MongoDB数据库中 工具:Python3.7 + Mongo4.0 + Pycharm """ 爬取起点小说<诡秘之主> ...
- 爬虫实战5:爬取全部穿越火线武器的图片以武器名称命名保存到本地文件
申明:资料来源于网络及书本,通过理解.实践.整理成学习笔记. 文章目录 穿越火线官网 完整代码 运行结果 穿越火线官网 完整代码 import requests# 循环33次,官网武器库展示有33页 ...
- Spark常用RDD算子 - saveAsTextFile、saveAsObjectFile 可保存到本地文件或hdfs系统中
saveAsTextFile 函数原型 def saveAsTextFile(path: String): Unit def saveAsTextFile(path: String, codec: C ...
- python list保存至csv文件
python list保存至csv文件:https://blog.csdn.net/qq_43372138/article/details/84110624?utm_medium=distribute ...
- java通过url获取网页内容_Java语言通过URL读取网页数据并保存到本地文件(代码实例)...
本文主要向大家介绍了Java语言通过URL读取网页数据并保存到本地文件(代码实例),通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. Java通过URL读取网页数据并保存到本地文件(代码 ...
最新文章
- (chap6 Http首部) 传输方式的分类
- leetcode 268. 丢失的数字(Java版)
- NSWindowController的初始化创建代码
- runas/cpau/lsrunase使用小结(以管理员运行指定程序)
- 尝试引用已删除的函数_如何在Excel中使用ROW函数
- ABAQUS2017安装问题:以下应用程序正在锁定 VC11 dll :C:\WINDOWS\system32\msvcr110.dll 继续前先终止这些应用程序。
- 基于 libdmtx和zxing的DM二维码识别总结
- MySQL基础教程4-SQL基础概念
- APMCon 2017|国美云服:混合云架构设计及性能实践
- 《金山词霸2009 牛津版》插件工具加载
- 25岁,一个北漂程序员,如果不想35 岁被淘汰,请把它当成一种信仰!
- 手动开启/关闭macOS HiDPI,让2k显示器完美适配macOS,解决紫屏问题
- 性能测试的实施及总结(二)
- 【MyBatis】| MyBatis的缓存
- 班尼机器人维修方法_工业机器人常见故障和修理方法
- 计算机类中级职称论文,计算机中级职称论文.docx
- 蚂蚁移动开发平台mPaaS:金融业务增长的新引擎
- 网上计算机能力提升研修心得,信息技术应用能力提升个人研修总结
- 基于机器学习的技术术语识别研究综述
- 实战技法 - 短线操盘 (6)
热门文章
- obs媒体源没有声音_最常用的直播软件OBS使用教程图解
- 深度学习——训练trick
- 一种新的无监督前景目标检测方法 A New Unsupervised Foreground Object Detection Method
- 用node写一个皖水公寓自动刷房源脚本
- 《2022年基础云服务行业数据报告》发布 华云数据凭借出色的产品技术能力和市场服务能力进入报告
- NPM私库搭建-verdaccio
- Vue3+element-plus实现后台管理系统
- vector 的 push_back[转]
- 2020-03-05T06:26:07.000+0000
- 【Linux-Node】Node环境安装到Linux系统