DBM文件简介
虽然无格式文件对于简单的数据持久化任务来说很顺手,但是通常适用于顺序化存储模式,仅适用于面向字节和文本行的存储。DBM文件是Python库中数据库管理的标准工具之一,它实现了数据的随机访问,可以通过使用Key建来访问存储的文本字符串。
DBM是Python中存储信息最简单的方式之一,使用DBM文件和使用内存中的字典数据十分类似,唯一明显的区别是:DBM文件要求键值对都必须是字符串,并且需要打开文件才能访问,做出修改后需要关闭文件。
导入dbm标准库模块后,Python会自动检测系统中已经存在的DBM接口,已固定的顺序尝试打开一个新的DBM文件,同时创建多个外部文件。在导入dbm模块和打开文件后,使用DBM文件的方式和字典类型几乎没有区别。
注意:
1,使用DBM文件存在系统兼容性隐患(系统自带的DBM接口不同)。
2,DBM文件总是把键和值存储为bytes对象,读取时需要根据需求解码。
3,显示关闭DBM文件可以避免潜在问题。
DBM文件操作
#模块导入
import dbm
#创建或者打开DBM文件
file = dbm.open(‘filename’,‘c’)
#创建或者修改键值对
file[‘key’] = ‘value’
#取建值
value = file[‘key’]
#计数
count = len(file)
#取键列表
index = file.keys()
#取值列表
value = file.values()
#查询
found = ‘key’ in file
#删除键值对
def file[‘key’]
#迭代
for key in file
#关闭
file.close()
简单的例子
#向DBM文件写入数据并读取展示
#键值对必须都是str类型
#通过decode()解码
import dbm
file =dbm.open('./Datas/dbm','c')
name = ('Amy','Timmy')
info = [{'age':17,'sex':'girl'},{'age':16,'sex':'boy'}]
for i in range(len(name)):
file[name[i]] = str(info[i])
file.close()
student =dbm.open('./Datas/dbm')
for key in student:
print(key.decode(),'=>',student[key].decode())
student.close()