DBM文件通過(guò)鍵訪問(wèn)存儲(chǔ)的文本字符串捐友。
對(duì)象存儲(chǔ)在DBM文件中甫恩,每個(gè)對(duì)象對(duì)應(yīng)一個(gè)唯一的鍵擎颖,可通過(guò)這個(gè)鍵訪問(wèn)對(duì)象。
>>> 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()
打開(kāi)方式 | 說(shuō)明 |
---|---|
'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 |
上面的例子創(chuàng)建了一個(gè)dbm文件蔓钟,并且演示了如何存儲(chǔ)一個(gè)數(shù)據(jù)對(duì)象永票,并通過(guò)鍵獲取對(duì)象。
打開(kāi)方式 | 說(shuō)明 |
---|---|
'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文件要求鍵必須是字符串滥沫,并且需要打開(kāi)文件之后才能訪問(wèn)侣集,修改之后需要關(guān)閉文件。
DBM文件把鍵和值存儲(chǔ)為bytes類(lèi)型的對(duì)象兰绣∈婪郑可以用decode對(duì)其進(jìn)行解碼。
>>> for key in file: print(key.decode()缀辩,file[key].decode())
>>> del file['Batman']
>>> file.close()
操作 | 說(shuō)明 |
---|---|
import dbm | 導(dǎo)入 |
file = dbm.open('filename','c') | 創(chuàng)建或打開(kāi)一個(gè)dbm文件 |
file['key'] = 'value' | 創(chuàng)建或改變鍵對(duì)應(yīng)的值 |
value = file['key'] | 獲取鍵對(duì)應(yīng)的值 |
count = len(file) | 獲取file存儲(chǔ)的對(duì)象的數(shù)量 |
index = file.keys() | 獲取鍵列表 |
found = 'key' in file | 查詢file中是否有key對(duì)應(yīng)的對(duì)象 |
del file['key'] | 刪除鍵對(duì)應(yīng)的對(duì)象 |
for key in file: | 迭代所有鍵 |
file.close() | 操作完畢手動(dòng)關(guān)閉文件 |
一個(gè)DBM文件對(duì)應(yīng)兩個(gè)文件臭埋,filename.dir和filename.dat。
DBM文件只能存儲(chǔ)字符串能表示的數(shù)據(jù)結(jié)構(gòu)臀玄。