Python使用Shelve保存对象方法总结

 更新时间:2019年01月28日 15:38:27   投稿:laozhang  
在本篇文章里我们给大家分享的是关于Python使用Shelve保存对象的知识点总结,有兴趣的朋友们学习下。

Shelve是一个功能强大的Python模块,用于对象持久性。搁置对象时,必须指定一个用于识别对象值的键。通过这种方式,搁置文件成为存储值的数据库,其中任何一个都可以随时访问。

Python中搁置的示例代码

要搁置对象,首先导入模块,然后按如下方式分配对象值:

import shelve
database = shelve.open(filename.suffix)
object = Object()
database['key'] = object

例如,如果要保留股票数据库,可以调整以下代码:

import shelve
stockvalues_db = shelve.open('stockvalues.db')
object_ibm = Values.ibm()
stockvalues_db['ibm'] = object_ibm
object_vmw = Values.vmw()
stockvalues_db['vmw'] = object_vmw
object_db = Values.db()
stockvalues_db['db'] = object_db

“stock values.db”已经打开,您无需再次打开它。相反,您可以一次打开多个数据库,随意写入每个数据库,并在程序终止时让Python关闭它们。例如,您可以为每个符号保留一个单独的名称数据库,并将以下内容附加到前面的代码中:

## assuming shelve is already imported
stocknames_db = shelve.open('stocknames.db')
objectname_ibm = Names.ibm()
stocknames_db['ibm'] = objectname_ibm
objectname_vmw = Names.vmw()
stocknames_db['vmw'] = objectname_vmw
objectname_db = Names.db()
stocknames_db['db'] = objectname_db

请注意,数据库文件的名称或后缀的任何更改都构成不同的文件,因此构成不同的数据库。

结果是包含给定值的第二个数据库文件。与大多数以自定格式编写的文件不同,搁置的数据库以二进制形式保存。

将数据写入文件后,可以随时调用。如果要在以后的会话中还原数据,请重新打开该文件。如果它是同一个会话,只需调用该值; 搁置数据库文件以读写模式打开。以下是实现此目的的基本语法:

import shelve
database = shelve.open(filename.suffix)
object = database['key']

因此,前面示例中的示例将显示为:

import shelve
stockname_file = shelve.open('stocknames.db')
stockname_ibm = stockname_file['ibm']
stockname_db = stockname_file['db']

搁置的考虑因素

请务必注意,在关闭数据库之前(或直到程序终止),数据库将保持打开状态。因此,如果您正在编写任何大小的程序,则需要在使用它之后关闭数据库。否则,整个数据库(不仅仅是您想要的值)位于内存中并消耗计算资源。

要关闭搁置文件,请使用以下语法:

database.close()

如果上面的所有代码示例都合并到一个程序中,那么我们将打开两个数据库文件并消耗内存。因此,在阅读上一个示例中的股票名称之后,您可以依次关闭每个数据库,如下所示:

stockvalues_db.close()
stocknames_db.close()
stockname_file.close()

相关文章

  • 用python简单实现mysql数据同步到ElasticSearch的教程

    用python简单实现mysql数据同步到ElasticSearch的教程

    今天小编就为大家分享一篇用python简单实现mysql数据同步到ElasticSearch的教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • 基于Python编写一个解析器

    基于Python编写一个解析器

    这篇文章主要给大家介绍了如何基于Python编写一个解析器,文章通过代码示例介绍的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2023-08-08
  • python自动化测试之setUp与tearDown实例

    python自动化测试之setUp与tearDown实例

    这篇文章主要介绍了python自动化测试之setUp与tearDown实例,其中setUp()方法中进行测试前的初始化工作,并在tearDown()方法中执行测试后的清除工作,setUp()和tearDown()都是TestCase类中定义的方法,需要的朋友可以参考下
    2014-09-09
  • Python Numpy学习之索引及切片的使用方法

    Python Numpy学习之索引及切片的使用方法

    数组中的元素可以通过索引以及切片的手段进行访问或者修改,和列表的切片操作一样。本文将详细为大家介绍一下Python中的科学计算库-Numpy的索引及切片的使用方法
    2022-01-01
  • Python数据处理的六种方式总结

    Python数据处理的六种方式总结

    在 Python 的数据处理方面经常会用到一些比较常用的数据处理方式,比如pandas、numpy等等。今天介绍的这款 Python 数据处理的管道数据处理方式,通过链式函数的方式可以轻松的完成对list列表数据的处理,希望对大家有所帮助
    2022-11-11
  • Python中动态检测编码chardet的使用教程

    Python中动态检测编码chardet的使用教程

    最近利用python抓取一些网上的数据,遇到了编码的问题。非常头痛,幸运的是找到了解决的方法,下面这篇文章主要跟大家介绍了关于Python中动态检测编码chardet的使用方法,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-07-07
  • 给我一面国旗 python帮你实现

    给我一面国旗 python帮你实现

    这篇文章主要为大家详细介绍了Python之给我一面国旗的实现代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • Python操作excel的方法总结(xlrd、xlwt、openpyxl)

    Python操作excel的方法总结(xlrd、xlwt、openpyxl)

    这篇文章主要给大家介绍了关于Python操作excel的一些方法,其中包括xlrd、xlwt、openpyxl的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • python多进程使用及线程池的使用方法代码详解

    python多进程使用及线程池的使用方法代码详解

    这篇文章主要介绍了python多进程使用及线程池的使用方法代码详解,需要的朋友可以参考下
    2018-10-10
  • python经典练习百题之猴子吃桃三种解法

    python经典练习百题之猴子吃桃三种解法

    这篇文章主要给大家介绍了关于python经典练习百题之猴子吃桃三种解法的相关资料, Python猴子吃桃子编程是一个趣味性十足的编程练习,在这个练习中,我们将要使用Python语言来模拟一只猴子吃桃子的过程,需要的朋友可以参考下
    2023-10-10

最新评论