美文网首页
数据持久化(DBM文件)

数据持久化(DBM文件)

作者: 500强低级工程师 | 来源:发表于2017-05-16 11:23 被阅读0次

    DBM文件通过键访问存储的文本字符串。
    对象存储在DBM文件中,每个对象对应一个唯一的键,可通过这个键访问对象。

    >>> import dbm
    >>> file = dbm.open('movie','c')
    >>> file['Batman'] = 'Pow!'
    >>> file
    <dbm.dumb._Database object at 0x0000000003A880F0>
    >>> file.keys()
    [b'Batman']
    >>> file['Batman']
    b'Pow!'
    >>> file.close()
    
    打开方式 说明
    'r' Open existing database for reading only (default)
    'w' Open existing database for reading and writing
    'c' Open database for reading and writing, creating it if it doesn’t exist
    'n' Always create a new, empty database, open for reading and writing

    上面的例子创建了一个dbm文件,并且演示了如何存储一个数据对象,并通过键获取对象。

    打开方式 说明
    'r' Open existing database for reading only (default)
    'w' Open existing database for reading and writing
    'c' Open database for reading and writing, creating it if it doesn’t exist
    'n' Always create a new, empty database, open for reading and writing

    DBM文件要求键必须是字符串,并且需要打开文件之后才能访问,修改之后需要关闭文件。
    DBM文件把键和值存储为bytes类型的对象。可以用decode对其进行解码。

    >>> for key in file: print(key.decode(),file[key].decode())
    >>> del file['Batman']
    >>> file.close()
    
    操作 说明
    import dbm 导入
    file = dbm.open('filename','c') 创建或打开一个dbm文件
    file['key'] = 'value' 创建或改变键对应的值
    value = file['key'] 获取键对应的值
    count = len(file) 获取file存储的对象的数量
    index = file.keys() 获取键列表
    found = 'key' in file 查询file中是否有key对应的对象
    del file['key'] 删除键对应的对象
    for key in file: 迭代所有键
    file.close() 操作完毕手动关闭文件

    一个DBM文件对应两个文件,filename.dir和filename.dat。
    DBM文件只能存储字符串能表示的数据结构。

    相关文章

      网友评论

          本文标题:数据持久化(DBM文件)

          本文链接:https://www.haomeiwen.com/subject/zcqlxxtx.html