`
qepwqnp
  • 浏览: 108894 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

python模块学习 ---- anydbm, shelve

阅读更多
好久没写这系列的文章了,我越来越喜欢用python了,它在我的工作中占据的比例越来越大。废话少说,直接进入主题。
anydbm允许我们将一个磁盘上的文件与一个“dict-like”对象关联起来,操作这个“dict-like”对象,就像操作dict对象一样,最后可以将“dict-like”的数据持久化到文件。对这个"dict-like"对象进行操作的时候,key和value的类型必须是字符串。下面是使用anydbm的例子:
	#coding=utf-8

import anydbm

def CreateData():
    try:
        db = anydbm.open('db.dat', 'c')
        # key与value必须是字符串
        # db['int'] = 1
        # db['float'] = 2.3
        db['string'] = "I like python."
        db['key'] = 'value'
    finally:
        db.close()
        
def LoadData():
    db = anydbm.open('db.dat', 'r')
    for item in db.items():
        print item
    db.close()
        
if __name__ == '__main__':
    CreateData()
    LoadData()
anydbm.open(filename[, flag[, mode]]),filename是关联的文件路径,可选参数flag可以是: 'r': 只读, 'w': 可读写, 'c': 如果数据文件不存在,就创建,允许读写; 'n': 每次调用open()都重新创建一个空的文件。mode是unix下文件模式,如0666表示允许所有用户读写。
shelve模块是anydbm的增强版,它支持在"dict-like"对象中存储任何可以被pickle序列化的对象,但key也必须是字符串。同样的例子,与shelve来实现:
	import shelve

def CreateData():
    try:
        db = shelve.open('db.dat', 'c')
        # key与value必须是字符串
        db['int'] = 1
        db['float'] = 2.3
        db['string'] = "I like python."
        db['key'] = 'value'
    finally:
        db.close()
        
def LoadData():
    db = shelve.open('db.dat', 'r')
    for item in db.items():
        print item
    db.close()
        
if __name__ == '__main__':
    CreateData()
    LoadData()
分享到:
评论

相关推荐

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

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

    Python shelve模块实现解析

    最后,对于那些对Python shelve模块有更深入了解需求的朋友,可以参考提供的源码链接,该链接指向了一个具体的Python学习项目的代码库,其中包含了一个名为d22_4_shelve_module.py的文件,提供了更多实际操作shelve...

    python-pickle-shelve

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

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

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

    python之shelve模块详解.docx

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

    38-Shelve Instance 操作详解 1

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

    python3 shelve模块的详解

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

    ch10-Python基础教程-相甍甍-清华大学出版社.ppt

    - Python内置了多个模块用于数据序列化,如`json`(JSON格式),`pickle`(Python对象格式)和`shelve`(键值对存储)。 5. **轮换文件**: - 轮换文件通常用于日志记录,允许程序在文件达到特定大小时自动创建新...

    python3内置持久化模块shelve心得

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

    python模块

    * shelve:shelve模块使用特殊的“shelf”对象来支持持久化对象。这个对象的行为与dict相似,但是所有的他存储的对象都使用基于hashtable的数据库(dbhash,dbm,gdbm)存储在硬盘。与dbm模块的区别是所存储的对象...

    python模块详解

    python模块详解 各个模块的详解 核心模块 1.1. 介绍 1.2. _ _builtin_ _ 模块 1.3. exceptions 模块 1.4. os 模块 1.5. os.path 模块 1.6. stat 模块 1.7. string 模块 1.8. re 模块 1.9. math 模块 1.10....

    Python模块

    Python模块:time、random、os、sys、json、pickle、shelve、XML等

    Python中的anydbm模版和shelve模版使用指南

    ### Python中的anydbm模版和shelve模版使用指南 #### 一、anydbm模版概述 anydbm是Python内置的一个轻量级数据库模块,它提供了一个简单的键值对存储方式,用于基本的数据持久化。anydbm实际上是多个数据库模块...

    学学Python_59标准模块7 shelve模块

    shelve模版,对应文件StandardLibrary9和databaseShelve,文章:https://blog.csdn.net/yysyangyangyangshan/article/details/85084999

    Python库 | shelfdb-0.4.0-py3-none-any.whl

    shelfdb是Python生态系统中的一个轻量级数据库接口,它提供了一种简单易用的方式来存储和检索键值对数据,类似于Python的内置shelve模块,但具有更丰富的功能和优化的性能。 shelfdb库的核心概念是提供一个持久化的...

    Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析

    本文实例讲述了Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法。分享给大家供大家参考,具体如下: 1、shelve模块 shelve类似于一个key-value数据库,可以很方便的用来保存...

    python的学习笔记

    以上只是Python学习的一些主要知识点,实际学习过程中,还需要结合具体的项目实践和持续的代码调试来提升技能。Python_knowledge-master这个压缩包可能包含了更详细的教程、代码示例和练习,是深入学习Python的好...

    python标准库3.7.3.docx

    - **10.2 anydbm 模块**:该模块提供了一个通用接口来访问DBM数据库。 - **10.3 whichdb 模块**:该模块在Python 3中已被废弃。 - **10.4 shelve 模块**:提供了一个简单的键值存储机制。 - **10.5 dbhash 模块**:...

Global site tag (gtag.js) - Google Analytics