数据持久化(DBM文件)

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

>>> import dbm
>>> file = dbm.open('movie','c')
>>> file['Batman'] = 'Pow!'
>>> file

>>> 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文件))