python-05 持久化模块
1、对象持久化
1)临时性对象
类创建的对象并不是真正的数据库记录,它存储在内存而不是文件中,当你关闭python,实例将消失;
2)对象持久化
对象在创建它们的程序退出之后依然存在;
3)标准库模块
1 | pickle #任意Python对象格式化和解格式化(编码、解码) |
2、构造数据库
shelve模块
shelve模块提供基本的存储操作,通过构造一个简单的数据库, 像操作字典一样按照键存储和获取本地的Python对象,使其可以跨程序运行而保持持久化。
1)键:必须是字符串,且是唯一的;
2)值:任何类型的Python对象;
3)与字典类型的区别:一开始必须打开shelve,并且在修改后需要关闭;
4)数据处理:不支持类似SQL的查询工具,但只要通过键获取到保存在文件的对象,就可以像正常的数据对象一样处理;
3、常用操作
1)将任何数据对象,保存到文件中去;
1 | d = shelve.open(filename) #open函数在调用时返回一个shelf对象,通过该对象可以存储内容 |
2)类似字典形式访问,可读可写 ;
1 | d[key] = data #写数据 |
3)操作完成后,记得关闭文件
1 | d.close() |
4)实例
1 | #程序1中写入 |
运行完程序,然后可以看到本地文件夹多出来几个文件:
1 | #在另一个程序读取刚刚写入的内容 |
1 | #在另一个程序读取刚刚写入的key |
1 | #存进shelve里面的列表对象、字符串等,进行append操作不报错但是无效,相当于白做。 |