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