`
qepwqnp
  • 浏览: 106379 次
  • 性别: 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()
分享到:
评论

相关推荐

    python-pickle-shelve

    python-pickle-shelve

    python3内置持久化模块shelve心得

    内置模块 shelve 可以将任意 Python 对象(pickle 模块能够处理的任何东西。)以类似字典的对象(shelf 对象)存在磁盘上以实现数据的持久保存。模块 shelve 生成的类似字典的对象 shelf 包含键 key 和 值 value 。...

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

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

    Python shelve模块实现解析

    主要介绍了Python shelve模块实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    python之shelve模块详解.docx

    **相同点:** 1.anydbm, shelve 都是对象持久化保存方法,将对象保存到文件里面,缺省的数据... anydbm的key和value的类型必须都是字符串,而shelve的key要求必须是字符串,value则可以是任意合法的python数据类型。

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

    主要介绍了Python数据持久化shelve模块用法,结合实例形式较为详细的总结分析了shelve模块的功能、原理及简单使用方法,需要的朋友可以参考下

    python3 shelve模块的详解

    主要介绍了python3 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_59标准模块7 shelve模块

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

    38-Shelve Instance 操作详解 1

    38-Shelve Instance 操作详解 1

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

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

    举例简单讲解Python中的数据存储模块shelve的用法

    主要介绍了举例简单讲解Python中的数据存储模块shelve的用法,shelveshelve模块与pickle模块的功能相近,比pickle用起来更为简单,需要的朋友可以参考下

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

    好久没写这系列的文章了,我越来越喜欢用python了,它在我的工作中占据的比例越来越大。废话少说,直接进入主题。  anydbm允许我们将一个磁盘上的文件与一个“dict-like”对象关联起来,操作这个“dict-like”对象...

    Python使用shelve模块实现简单数据存储的方法

    本文实例讲述了Python使用shelve模块实现简单数据存储的方法。分享给大家供大家参考。具体分析如下: Python的shelve模块提供了一种简单的数据存储方案,以dict(字典)的形式来操作数据。 #!/usr/bin/python ...

Global site tag (gtag.js) - Google Analytics