数据持久化(DBM文件)

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文件只能存储字符串能表示的数据结构。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,937评论 18 139
  • Java基础常见英语词汇(共70个)['ɔbdʒekt] ['ɔ:rientid]导向的 ...
    今夜子辰阅读 3,360评论 1 34
  • 很实用的编程英语词库,共收录一千五百余条词汇。 第一部分: application 应用程式 应用、应用程序app...
    春天的蜜蜂阅读 1,422评论 0 22
  • 在一个app历经数周持续开发和多个版本快速内部迭代之后,当我们需要把这个版本发布到我们实际应用场景中,面对我们真实...
    chenkai阅读 25,288评论 22 58
  • 在中文IT技术论坛CSDN上发表文章取得一定成绩后,就有几位好心的出版社编辑邀请我来出几本书。这事儿让我感到无比欣...
    沉默王二阅读 773评论 0 0