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

高洛峰
發布: 2016-10-18 13:51:54
原創
1943 人瀏覽過

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

1.選擇dbm模組

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

下表列出這些模組:

模組說明

dbm選擇最好的dbm模組

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

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

2.創建持久詞典

import dbm
db = 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 file
db = dbm.open('websites', 'w')
#add item
db['first_data'] = 'Hello world'
    
#verify the previous item remains
if db['first_data'] != None:
    print('the data exists')
else:
    print('Missing item')
   
#iterate over the keys, may be slow
for key in db.keys():
    print("Key=",key," value=",db[key])
   
#delete item
del db['first_data']
   
#close and save to disk
db.close()
登入後複製

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!