`
willzh
  • 浏览: 301771 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

13.4 shelve -- Python object persistence

阅读更多
import shelve

d = shelve.open(filename) # open -- file may get suffix added by low-level
                          # library

d[key] = data   # store data at key (overwrites old data if
                # using an existing key)
data = d[key]   # retrieve a COPY of data at key (raise KeyError if no
                # such key)
del d[key]      # delete data stored at key (raises KeyError
                # if no such key)
flag = d.has_key(key)   # true if the key exists
klist = d.keys() # a list of all existing keys (slow!)

# as d was opened WITHOUT writeback=True, beware:
d['xx'] = range(4)  # this works as expected, but...
d['xx'].append(5)   # *this doesn't!* -- d['xx'] is STILL range(4)!!!

# having opened d without writeback=True, you need to code carefully:
temp = d['xx']      # extracts the copy
temp.append(5)      # mutates the copy
d['xx'] = temp      # stores the copy right back, to persist it

# or, d=shelve.open(filename,writeback=True) would let you just code
# d['xx'].append(5) and have it work as expected, BUT it would also
# consume more memory and make the d.close() operation slower.

d.close()       # close it
分享到:
评论

相关推荐

    PHP Shelve-开源

    在Python中,shelve模块提供了一种简单的方法来存储和检索Python对象,这些对象可以是任何可序列化的数据类型。而PHP Shelve则为PHP开发者提供了类似的功能,允许他们将PHP对象持久化到磁盘,以便在后续的程序运行中...

    Python3.7.2中文文档-标准库-Python数据持久性

    2. 持久化数据结构:Python的标准库提供了几种数据结构,如`pickle`和`shelve`,可以将复杂的数据结构(如列表、字典)保存到磁盘。`pickle`模块能将Python对象转换为字节流,然后写入文件;反之,可以从文件中读取...

    第五周-第09章节-Python3.5-内置模块详解之Shelve模块.avi

    第五周-第09章节-Python3.5-内置模块详解之Shelve模块.avi

    Shelve-Me:基于 RailsBackbone 的 GoodReads 克隆

    搁置我 一个读者可以相互联系并整理书籍的地方。 使用亚马逊的 API,用户可以通过输入 ISBN10 将图书添加到数据库中。 图书信息取自亚马逊服务器,书名、作者、描述、封面属性一键设置。 Sheve Me 使用 Backbone.js...

    Expense-Tracker:Python的费用追踪器

    Python的shelve模块或pickle库可以用来持久化存储对象,避免数据丢失。同时,定期备份数据库到云存储或外部设备也是一个好习惯。 综上所述,"Expense-Tracker"是一个集数据输入、存储、分析、可视化和预算管理于...

    38-Shelve Instance 操作详解 1

    当实例不再需要立即运行,但又希望保留其状态时,Shelve操作提供了一种有效的方法。Shelve Instance允许管理员将实例暂时移除,释放宿主机上的资源,同时保持实例的状态以便稍后恢复。在本文中,我们将深入探讨...

    Python3 shelve对象持久存储原理详解

    Python3的`shelve`模块提供了对象持久存储的功能,它是一种简单的方式,尤其在不需要使用关系型数据库的情况下。`shelve`操作的对象就像字典一样,通过键来访问,但不同的是,`shelve`中的值会被序列化(pickled)后...

    python3 shelve模块的详解

    Python3的`shelve`模块是一个非常实用的工具,它提供了简单的方法来持久化Python对象。这个模块的主要目的是为了能够方便地保存和加载数据,即使数据类型比较复杂,例如字典、列表或者其他自定义的对象。下面我们将...

    python3内置持久化模块shelve心得

    ### Python3内置持久化模块shelve心得 #### 概述 Python 提供了多种方式来实现数据的持久化,其中 `shelve` 模块是一个非常实用的选择,它允许我们像使用字典一样来存储复杂的数据结构,并将其保存到磁盘上以便...

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

    **Python Shelve 模块详解** 在Python编程中,`Shelve`是一个非常有用的模块,它提供了一种简单的方法来保存和恢复Python对象。Shelve模块允许开发者将Python对象持久化到磁盘,使得在程序的后续运行中可以方便地...

    Python数据持久化shelve模块用法分析

    shelve模块是Python的一个标准库模块,用于实现数据的持久化存储。它允许你将Python中的数据结构,比如字典、列表等,保存在磁盘的文件中,以便程序关闭之后仍然能够访问这些数据。当需要时,可以从文件中读取数据,...

    python之shelve模块详解.docx

    【Python shelve模块详解】 `shelve`是Python标准库中的一个模块,它提供了一种简单的方法来持久化存储Python对象。与`anydbm`类似,`shelve`允许我们将对象保存到磁盘上的文件中,以实现数据的持久化。但是,两者...

    python入门教程(非常详细),从零基础入门到精通,看完这一篇就够了.pdf

    Python 入门教程详细知识点总结 本文档提供了 Python 编程语言的详细入门教程,从零基础到精通,涵盖了 Python 的各个方面,包括语法、数据类型、函数、模块、面向对象、异常处理、网络编程和并发编程等。 第一章...

    Python shelve模块实现解析

    Python shelve模块是一个用于数据持久化的库,它允许用户以键值对的形式存储Python对象。这个模块特别适合需要快速存储和读取数据的场景,而且因为其操作方式类似于字典,使得它非常易于学习和使用。 首先,我们...

    python-pickle-shelve

    在Python编程语言中,`pickle`和`shelve`是两个非常重要的模块,它们主要用于数据序列化和持久化。这两个模块对于数据存储和恢复、跨程序间的数据传递以及简化复杂对象的保存和读取有着重要作用。 `pickle`模块是...

    python3.6.5参考手册 chm

    Python参考手册,官方正式版参考手册,chm版。以下摘取部分内容:Navigation index modules | next | Python » 3.6.5 Documentation » Python Documentation contents What’s New in Python What’s New In ...

Global site tag (gtag.js) - Google Analytics