十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章给大家介绍怎么在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中利用Shelve保存对象就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。