該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)發