做(zuò)自(zì)由與創造的先行(xíng)者

數(shù)據持久性 | Data Persistence anydbm

Python開(kāi)發手冊

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

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

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

打開(kāi)數(shù)據庫文件的文件名并返回相應的對象。

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

可(kě)選的标志參數(shù)必須是以下(xià)值之一(yī):

含義

'R'

打開(kāi)僅用于讀取的現有數(shù)據庫(默認)

'W'

打開(kāi)現有的數(shù)據庫進行(xíng)讀寫

'C'

打開(kāi)數(shù)據庫進行(xíng)讀寫,如(rú)果不存在則創建它

'N'

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

如(rú)果未指定,則默認值為(wèi)'r'。

可(kě)選模式參數(shù)是文件的Unix模式,僅在需要(yào)創建數(shù)據庫時(shí)使用。它默認為(wèi)八進制0666(并且會被主要(yào)的umask修改)。

exception anydbm.error

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

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

以下(xià)示例記錄了(le)一(yī)些主機名和(hé)相應的标題,然後打印出數(shù)據庫的內(nèi)容:

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對象還提供以下(xià)方法:

糾錯

anydbm.close()

關閉anydbm數(shù)據庫。

網站建設開(kāi)發|APP設計開(kāi)發|小程序建設開(kāi)發