博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python shelve模块
阅读量:4612 次
发布时间:2019-06-09

本文共 1472 字,大约阅读时间需要 4 分钟。

shelve模块

shelve类似于一个key-value数据库,可以很方便的用来保存Python的内存对象,其内部使用pickle来序列化数据,简单来说,使用者可以将一个列表、字典、或者用户自定义的类实例保存到shelve中,下次需要用的时候直接取出来,就是一个Python内存对象。

使用举例1

import shelvezhang = dict(zip(['name', 'age'], ['zhang', 14]))li = dict(zip(['name', 'age'], ['li', 15]))# 存储对象到文件db = shelve.open('shelveDict.db')  # 打开一个文件db['zhang'] = zhang  # 向文件中添加内容,添加方式与给字典添加键值对相同db['li'] = lidb.close()  # 关闭文件# 从文件中提取对象db = shelve.open('shelveDict.db')  # 打开一个文件print(db['zhang'])  # 向从字典中获取键的方式一样读取内容 {'name': 'zhang', 'age': 14}print(db['li'])  # 结果为{'age': 15, 'name': 'li'}# 从文件中提取对象并修改db = shelve.open('shelveDict.db')  # 打开文件zhang_obj = db['zhang']  # 从文件中读取之前存储的对象zhang_obj['name'] = 'zi'  # 直接对对象进行修改zhang_obj['age'] = 24db['zhang'] = zhang_obj  # 重新存储至字典文件对象中print(db['zhang'])  # 结果如下{'age': 24, 'name': 'zi'}db.close()

 

 

使用举例2

import shelveclass ShelveUtil(object):    """    使用Shelve存储提取对象    """    def __init__(self, file):        self.file_obj = shelve.open(file)    def save(self, key, value):        """         存储对象        :param key:        :param value:        :return:        """        self.file_obj[key] = value    def load(self, key):        """         获得对象        :param key:        :return:        """        return self.file_obj[key]        def __del__(self):        self.file_obj.close()if __name__ == '__main__':    a = {'a': 1, 'b': 2}    s = ShelveUtil('a.db')    s.save('a', a)    print(s.load('a'))

  

  

 

转载于:https://www.cnblogs.com/xiao-apple36/p/9338581.html

你可能感兴趣的文章
如何使用jQuery判断一个元素是否存在
查看>>
HTML5中的Canvas(颜色)【转载】
查看>>
420. Strong Password Checker
查看>>
用字节流添加内容至txt中
查看>>
手写算式的识别与运算
查看>>
jquery 1.9 1.8 判断 浏览器(IE11,IE8,IE7,IE6)版本
查看>>
windows_study_1
查看>>
Java_你应该知道的26种设计模式
查看>>
L0/L1/L2范数的联系与区别
查看>>
J - FatMouse's Speed
查看>>
JAVA封装
查看>>
docker数据卷(volume)
查看>>
20、任务十七——页面交互功能、柱状图的实现
查看>>
修复mysql:[ERROR] Native table ‘performance_schema’
查看>>
[ios] IOS CoreText.framework 【转】
查看>>
2013年度最强AngularJS资源合集
查看>>
IOS AutoLayout 文章
查看>>
.NET 页面间传值的几种方法
查看>>
基于标签的新闻推荐方法
查看>>
Java只允许输入数字的文本框
查看>>