做自(zì)由與創造的先行者

數據持久性 | Data Persistence anydbm

Python開(kāi)發手冊

該anydbm模塊已被重命名爲dbmPython 3. 當将源代碼轉換爲Python 3時(shí),2to3工(gōng)具将自(zì)動适應導入。

anydbm是DBM數據庫變體的通用(yòng)接口 - dbhash(需要bsddb)gdbm,或dbm。如果沒有安裝這(zhè)些(xiē)模塊,dumbdbm則将使用(yòng)模塊中緩慢而簡單的實現(xiàn)。

anydbm.open(filename[, flag[, mode]])

打開(kāi)數據庫文(wén)件的文(wén)件名并返回相應的對(duì)象。

如果數據庫文(wén)件已存在,whichdb則使用(yòng)該模塊确定其類型并使用(yòng)适當的模塊; 如果它不存在,則使用(yòng)上(shàng)面列出的可導入的第一個模塊。

可選的标志參數必須是以下(xià)值之一:

含義

'R'

打開(kāi)僅用(yòng)于讀取的現(xiàn)有數據庫(默認)

'W'

打開(kāi)現(xiàn)有的數據庫進行讀寫

'C'

打開(kāi)數據庫進行讀寫,如果不存在則創建它

'N'

總是創建一個新的空(kōng)的數據庫,打開(kāi)閱讀和(hé)寫作(zuò)

如果未指定,則默認值爲'r'。

可選模式參數是文(wén)件的Unix模式,僅在需要創建數據庫時(shí)使用(yòng)。它默認爲八進制0666(并且會(huì)被主要的umask修改)。

exception anydbm.error

包含可由每個受支持模塊引發的異常的元組,其中包含也(yě)anydbm.error稱爲第一項的唯一異常- 後者在anydbm.error引發時(shí)使用(yòng)。

返回的對(duì)象open()支持與字典大(dà)部分相同的功能(néng); 可以存儲,檢索和(hé)删除鍵和(hé)它們的對(duì)應值,并且可以使用(yòng)has_key()和(hé)keys()方法。鍵和(hé)值必須始終是字符串。

以下(xià)示例記錄了(le)一些(xiē)主機名和(hé)相應的标題,然後打印出數據庫的内容:

import anydbm

# Open database, creating it if necessary.

db = anydbm.open('cache', 'c')

# Record some values

db['www.python.org'] = 'Python Website'

db['www.cnn.com'] = 'Cable News Network'

# Loop through contents. Other dictionary methods

# such as .keys(), .values() also work.

for k, v in db.iteritems():

print k, '\t', v

# Storing a non-string key or value will raise an exception (most

# likely a TypeError).

db['www.yahoo.com'] = 4

# Close when done.

db.close()

複制

除了(le)類似字典的方法之外(wài),anydbm對(duì)象還提供以下(xià)方法:

糾錯

anydbm.close()

關閉anydbm數據庫。

網站(zhàn)建設開(kāi)發|APP設計(jì)開(kāi)發|小(xiǎo)程序建設開(kāi)發
下(xià)一篇:數據持久性 | Data Persistence bsddb
上(shàng)一篇:數據壓縮 | Data Compression zipfile