python使用dbm持久字典(python微型資料庫)詳解

來源:互聯網
上載者:User
在一些python小型應用程式中,不需要關係型資料庫時,可以方便的用持久字典來儲存成對的名稱和數值,它與python的字典非常類似,主要區別在於資料是在磁碟讀取和寫入的。另一個區別在於dbm的鍵和值必須是字串類型。

1.選擇dbm模組

python支援很多dbm模組,遺憾的是,每個dbm模組建立的檔案不相容。

下表列出這些模組:

模組說明

dbm選擇最好的dbm模組

dbm.dumb使用dbm庫的一個簡單但可移植的實現

dbm.gnu使用GNU dbm的庫

一般除非某個dbm庫有特殊進階功能,那就用dbm模組。

2.建立持久詞典

import dbmdb = dbm.open('Bookmark', 'c')#添加選項db['MyBlog'] = 'jonathanlife.sinaapp.com'print(db['MyBlog'])#儲存,關閉db.close()

open函數關於開啟dbm的方式有三種:

標誌用法

C開啟檔案對其讀寫,必要時建立該檔案

W開啟檔案對其讀寫,如果檔案不存在,不會建立它

N開啟檔案進行讀寫,但總是建立一個新的空白檔案


也可以傳遞另一種表示模式的選擇性參數,該模式儲存了一組UNIX檔案許可權,這裡不細說。

3.訪問持久字典

從open函數返回的對象視作一個字典對象。對值的存取方式如下:

db[‘key’] = ‘value’value = db[‘key’]#刪除值:del db[‘key’]#遍曆所有key:for key in db.keys():   #your code here

代碼執行個體:

import dbm#open existing filedb = dbm.open('websites', 'w')#add itemdb['first_data'] = 'Hello world'    #verify the previous item remainsif db['first_data'] != None:    print('the data exists')else:    print('Missing item')   #iterate over the keys, may be slowfor key in db.keys():    print("Key=",key," value=",db[key])   #delete itemdel db['first_data']   #close and save to diskdb.close()

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.