建立一個新的架子

使用擱置的最簡單方法是通過 DbfilenameShelf 類。它使用 anydbm 來儲存資料。你可以直接使用該類,或者只需呼叫 shelve.open()

import shelve

s = shelve.open('test_shelf.db')
try:
    s['key1'] = { 'int': 10, 'float':9.5, 'string':'Sample data' }
finally:
    s.close()

要再次訪問資料,請開啟書架並像字典一樣使用它:

    import shelve
    
    s = shelve.open('test_shelf.db')
    try:
        existing = s['key1']
    finally:
        s.close()

print existing

如果你執行兩個示例指令碼,你應該看到:

$ python shelve_create.py
$ python shelve_existing.py

{'int': 10, 'float': 9.5, 'string': 'Sample data'}

DBM 模組不支援多個應用程式同時寫入同一個資料庫。如果你知道你的客戶端不會修改架子,你可以告訴 shelve 以只讀方式開啟資料庫。

import shelve

s = shelve.open('test_shelf.db', flag='r')
try:
    existing = s['key1']
finally:
    s.close()

print existing

如果程式在以只讀方式開啟時嘗試修改資料庫,則會生成訪問錯誤異常。異常型別取決於建立資料庫時 anydbm 選擇的資料庫模組。