python使用dbm持久字典詳解


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

             1.選擇dbm模塊

             python支持很多dbm模塊,遺憾的是,每個dbm模塊創建的文件不兼容。

             下表列出這些模塊: 

模塊 說明
dbm 選擇最好的dbm模塊
dbm.dumb 使用dbm庫的一個簡單但可移植的實現
dbm.gnu 使用GNU dbm的庫

        一般除非某個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

 

可以將如下腳本作為一個使用dbm的指導:

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()

  done,預祝各位程序猿們happy new year。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM