• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

在Python中如何使用Shelve保存对象

python 搞代码 4年前 (2022-01-09) 31次浏览 已收录 0个评论

Shelve是一个功能强大的Python模块,用于对象持久性。搁置对象时,必须指定一个用于识别对象值的键。通过本文来源gao($daima.com搞@代@#码(网5这种方式,搁置文件成为存储值的数据库,其中任何一个都可以随时访问。

Python中搁置的示例代码

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

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

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

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

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

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

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

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

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

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

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

 import shelvestockname_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中如何使用Shelve保存对象的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:在Python中如何使用Shelve保存对象

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址