自(zì)2.6版以來已棄用:該bsddb模塊已在Python 3中删除。
該bsddb模塊為(wèi)Berkeley DB庫提供了(le)一(yī)個接口。用戶可(kě)以使用适當的公開(kāi)呼叫創建哈希,btree或基于記錄的庫文件。Bsddb對象的行(xíng)為(wèi)通(tōng)常與字典類似。但(dàn)是,鍵和(hé)值必須是字符串,因此要(yào)将其他(tā)對象用作(zuò)鍵或存儲其他(tā)類型的對象,用戶必須以某種方式将它們序列化,通(tōng)常使用marshal.dumps()或pickle.dumps()。
該bsddb模塊需要(yào)從(cóng)4.0到4.7的Berkeley DB庫版本。
模塊中提供了(le)更現代的DB,DBEnv和(hé)DBSequence對象接口,bsddb.db它與上(shàng)述URL中記錄的Berkeley DB C API密切匹配。bsddb.dbAPI 提供的其他(tā)功能(néng)包括微(wēi)調,事務處理,日志記錄和(hé)多進程并發數(shù)據庫訪問(wèn)。
以下(xià)是bsddb與舊(jiù)的Python bsddb模塊兼容的舊(jiù)界面的描述。從(cóng)Python 2.5開(kāi)始,此接口對于多線程訪問(wèn)應該是安全的。該bsddb.dbAPI推薦用于線程用戶,因為(wèi)它提供了(le)更好的控制。
該bsddb模塊定義了(le)以下(xià)函數(shù),用于創建訪問(wèn)适當類型的Berkeley DB文件的對象。每個函數(shù)的前兩個參數(shù)是相同的。為(wèi)了(le)便于攜帶,大多數(shù)情況下(xià)隻應使用前兩個參數(shù)。
bsddb.hashopen(filename[, flag[, mode[, pgsize[, ffactor[, nelem[, cachesize[, lorder[, hflags]]]]]]]])
打開(kāi)名為(wèi)filename的哈希格式文件。從(cóng)不打算保存在磁盤上(shàng)None的文件可(kě)以通(tōng)過傳遞作(zuò)為(wèi)文件名來創建。可(kě)選标志标識用于打開(kāi)文件的模式。它可(kě)以是'r'(隻讀),'w'(讀寫),'c'(讀寫 - 如(rú)果需要(yào)則創建;默認)或'n'(讀寫 - 截斷為(wèi)零長(cháng)度)。其他(tā)參數(shù)很(hěn)少(shǎo)使用,隻傳遞給低(dī)級dbopen()函數(shù)。請(qǐng)參閱Berkeley DB文檔以獲取它們的使用和(hé)解釋。
bsddb.btopen(filename[, flag[, mode[, btflags[, cachesize[, maxkeypage[, minkeypage[, pgsize[, lorder]]]]]]]])
打開(kāi)名為(wèi)filename的btree格式文件。從(cóng)不打算保存在磁盤上(shàng)None的文件可(kě)以通(tōng)過傳遞作(zuò)為(wèi)文件名來創建。可(kě)選标志标識用于打開(kāi)文件的模式。它可(kě)以是'r'(隻讀),'w'(讀寫),'c'(讀寫 - 如(rú)果需要(yào)則創建;默認)或'n'(讀寫 - 截斷為(wèi)零長(cháng)度)。其他(tā)參數(shù)很(hěn)少(shǎo)使用,隻傳遞給低(dī)級dbopen函數(shù)。請(qǐng)參閱Berkeley DB文檔以獲取它們的使用和(hé)解釋。
bsddb.rnopen(filename[, flag[, mode[, rnflags[, cachesize[, pgsize[, lorder[, rlen[, delim[, source[, pad]]]]]]]]]])
打開(kāi)一(yī)個名為(wèi)filename的DB記錄格式文件。從(cóng)不打算保存在磁盤上(shàng)None的文件可(kě)以通(tōng)過傳遞作(zuò)為(wèi)文件名來創建。可(kě)選标志标識用于打開(kāi)文件的模式。它可(kě)以是'r'(隻讀),'w'(讀寫),'c'(讀寫 - 如(rú)果需要(yào)則創建;默認)或'n'(讀寫 - 截斷為(wèi)零長(cháng)度)。其他(tā)參數(shù)很(hěn)少(shǎo)使用,隻傳遞給低(dī)級dbopen函數(shù)。請(qǐng)參閱Berkeley DB文檔以獲取它們的使用和(hé)解釋。
注釋
從(cóng)2.3開(kāi)始,Python的某些Unix版本可(kě)能(néng)有一(yī)個bsddb185模塊。這(zhè)隻是為(wèi)了(le)允許與舊(jiù)Berkeley DB 1.85數(shù)據庫附帶的系統向後兼容。bsddb185不應該直接在新代碼中使用該模塊。該模塊已在Python 3中删除。如(rú)果您發現您仍然需要(yào)它,請(qǐng)查看(kàn)PyPI。
1.哈希,BTree和(hé)記錄對象
一(yī)旦實例化,哈希,btree和(hé)記錄對象支持與字典相同的方法。另外(wài),他(tā)們支持下(xià)面列出的方法。
在版本2.3.1中進行(xíng)了(le)更改:添加了(le)字典方法。
bsddbobject.close()
關閉底層文件。該對象不能(néng)再被訪問(wèn)。由于open()這(zhè)些對象沒有開(kāi)放的方法,所以要(yào)再次打開(kāi)文件,bsddb必須調用一(yī)個新的模塊打開(kāi)函數(shù)。
bsddbobject.keys()
返回DB文件中包含的密鑰列表。列表的順序是未指定的,不應該依賴。特别是,對于不同的文件格式,返回列表的順序是不同的。
bsddbobject.has_key(key)
返回1如(rú)果DB文件中包含的參數(shù)作(zuò)為(wèi)重點。
bsddbobject.set_location(key)
将遊标設置為(wèi)key所指示的項目并返回包含該鍵及其值的元組。對于使用二進制樹(shù)數(shù)據庫的數(shù)據庫btopen(),如(rú)果key實際上(shàng)不存在于數(shù)據庫中,則遊标将按照排序順序指向下(xià)一(yī)個項目并返回該鍵和(hé)值。對于其他(tā)數(shù)據庫,KeyError如(rú)果在數(shù)據庫中找不到密鑰,則會引發其他(tā)數(shù)據庫。
bsddbobject.first()
将光(guāng)标設置為(wèi)DB文件中的第一(yī)項并返回。除B-Tree數(shù)據庫外(wài),文件中鍵的順序是未指定的。bsddb.error如(rú)果數(shù)據庫為(wèi)空,則引發此方法。
bsddbobject.next()
将光(guāng)标設置為(wèi)DB文件中的下(xià)一(yī)個項目并将其返回。除B-Tree數(shù)據庫外(wài),文件中鍵的順序是未指定的。
bsddbobject.previous()
将光(guāng)标設置到數(shù)據庫文件中的前一(yī)項并返回。除B-Tree數(shù)據庫外(wài),文件中鍵的順序是未指定的。這(zhè)在散列表數(shù)據庫(打開(kāi)的數(shù)據庫hashopen())上(shàng)不受支持。
bsddbobject.last()
将光(guāng)标設置為(wèi)DB文件中的最後一(yī)項并返回。文件中的鍵的順序是未指定的。這(zhè)在散列表數(shù)據庫(打開(kāi)的數(shù)據庫hashopen())上(shàng)不受支持。bsddb.error如(rú)果數(shù)據庫為(wèi)空,則引發此方法。
bsddbobject.sync()
在磁盤上(shàng)同步數(shù)據庫。
網站建設開(kāi)發|APP設計開(kāi)發|小程序建設開(kāi)發