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

數據持久性 | Data Persistence gdbm

Python開(kāi)發手冊

該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)發
下(xià)一篇:數據持久性 | Data Persistence marshal
上(shàng)一篇:數據持久性 | Data Persistence dumbdbm