該gdbm模塊已被重命名爲dbm.gnuPython 3. 當将源代碼轉換爲Python 3時(shí),2to3工(gōng)具将自(zì)動适應導入。
這(zhè)個模塊與模塊非常相似dbm,但(dàn)是gdbm用(yòng)來(lái)提供一些(xiē)附加功能(néng)。請(qǐng)注意,由gdbm和(hé)創建的文(wén)件格式dbm不兼容。
該gdbm模塊爲GNU DBM庫提供了(le)一個接口。gdbm對(duì)象的行爲就像映射(字典),除了(le)鍵和(hé)值總是字符串。打印gdbm對(duì)象不會(huì)打印鍵和(hé)值,并且不支持items()和(hé)values()方法。
該模塊定義了(le)以下(xià)常量和(hé)功能(néng):
exception gdbm.error
引發gdbm特定的錯誤,例如I / O錯誤。KeyError引發一般映射錯誤,如指定不正确的鍵。
gdbm.open(filename[, flag[, mode]])
打開(kāi)一個gdbm數據庫并返回一個gdbm對(duì)象。該文(wén)件名參數是數據庫文(wén)件的名稱。
可選的标志參數可以是:
值 | 含義 |
---|---|
'R' | 打開(kāi)僅用(yòng)于讀取的現(xiàn)有數據庫(默認) |
'W' | 打開(kāi)現(xiàn)有的數據庫進行讀寫 |
'C' | 打開(kāi)數據庫進行讀寫,如果不存在則創建它 |
'N' | 總是創建一個新的空(kōng)的數據庫,打開(kāi)閱讀和(hé)寫作(zuò) |
以下(xià)附加字符可以附加到(dào)該标志以控制數據庫的打開(kāi)方式:
值 | 含義 |
---|---|
'F' | 以快(kuài)速模式打開(kāi)數據庫。寫入數據庫将不會(huì)同步。 |
'S' | 同步模式。這(zhè)将導緻數據庫的更改立即寫入文(wén)件。 |
“在” | 不要鎖定數據庫。 |
并非所有标志對(duì)于所有版本都有效gdbm。模塊常量open_flags是一串支持的标志字符。error如果指定了(le)無效标志,則會(huì)引發異常。
可選模式參數是文(wén)件的Unix模式,僅在需要創建數據庫時(shí)使用(yòng)。它默認爲八進制0666。
除了(le)類似字典的方法外(wài),gdbm對(duì)象還有以下(xià)方法:
gdbm.firstkey()
使用(yòng)此方法和(hé)nextkey()方法可以遍曆數據庫中的每個鍵。遍曆按gdbm内部散列值排序,不會(huì)按鍵值排序。此方法返回開(kāi)始鍵。
gdbm.nextkey(key)
返回遍曆中關鍵字的鍵。以下(xià)代碼打印數據庫中的每個鍵db,而不必在内存中創建一個包含它們的列表:
k = db.firstkey()
while k != None:
print k
k = db.nextkey(k)
複制
gdbm.reorganize()
如果您執行了(le)大(dà)量删除操作(zuò)并希望縮小(xiǎo)gdbm文(wén)件使用(yòng)的空(kōng)間,則此例程将重新組織數據庫。gdbm除使用(yòng)此重組外(wài),不會(huì)縮短數據庫文(wén)件的長度; 否則,删除的文(wén)件空(kōng)間将被保留并在新(鍵值)對(duì)添加時(shí)重新使用(yòng)。
gdbm.sync()
當數據庫以快(kuài)速模式打開(kāi)時(shí),此方法強制任何未寫入的數據寫入磁盤。
糾錯
gdbm.close()
關閉gdbm數據庫。
網站(zhàn)建設開(kāi)發|APP設計(jì)開(kāi)發|小(xiǎo)程序建設開(kāi)發