使用Shelve将对象保存在Python中

Shelve是用于对象持久性的强大Python模块。当您搁置对象时,必须分配一个密钥,通过该密钥可以知道对象值。通过这种方式,shelve文件成为存储值的数据库,可以随时访问任何存储值。

Python中Shelve的示例代码

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

 
导入货架
数据库=shelve.open(文件名)
object=object()
database['key']=object

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

导入货架

库存值Ådb=shelve.open(&)39;stockvalues.db')
对象ëibm=值.ibm()
stockvaluesëudB['ibm']=对象ëibm

对象ëvmw=Values.vmw()
stockvaluesëdb['vmw']=对象ëvmw

对象ëdb=值db()
stockvaluesëdb['db']=对象ëdb

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

###假设货架已经导入

库存名称ţdb=shelve.open(&)39;stockname.db')

objectnameçuIBM=姓名()
stocknamesëdb['ibm']=objectnameëibm

objectnameëvmw=姓名.vmw()
stocknameëdb['vmw']=objectname_vmw

objectname_db=名称()
stocknameëdb['db']=objectnameëdb

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

健康教育知识测试题及答案

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

数据写入文件后,可以随时召回。如果要在以后的会话中恢复数据,请重新打开该文件。如果是同一会话,只需召回该值;shelve数据库文件以读写模式打开。以下是实现此目的的基本语法:

导入货架
数据库=shelve.open(文件名)
对象=数据库[&##39;键']

因此,前面示例中的示例将读取:

导入货架
stocknameÅfile=shelve.open(&)39;stockname.db')
stockname_ibm=stockname_file['ibm']
stockname_db=stockname#file['db']

考虑搁置

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

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

数据库()

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

库存值_关闭()
库存_关闭()
库存_文件关闭()