您好,登錄后才能下訂單哦!
由于Caffe使用的存儲圖像的數據庫是lmdb,因此有時候需要對lmdb文件進行操作,本文主要講解如何用Python合并lmdb文件。沒有lmdb支持的,需要用pip命令安裝。
pip install lmdb
代碼及注釋如下:
# coding=utf-8 # filename: merge_lmdb.py import lmdb # 將兩個lmdb文件合并成一個新的lmdb def merge_lmdb(lmdb1, lmdb2, result_lmdb): print 'Merge start!' # env代表Environment, txn代表Transaction # 打開lmdb文件,讀模式 env_1 = lmdb.open(lmdb1) env_2 = lmdb.open(lmdb2) # 創建事務 txn_1 = env_1.begin() txn_2 = env_2.begin() # 打開數據庫 database_1 = txn_1.cursor() database_2 = txn_2.cursor() # 打開lmdb文件,寫模式, env_3 = lmdb.open(result_lmdb, map_size=int(1e12)) txn_3 = env_3.begin(write=True) count = 0 # 遍歷數據庫 for (key, value) in database_1: # 將數據放到結果數據庫事務中 txn_3.put(key, value) count++ if(count % 1000 == 0): # 將數據寫入數據庫,必須的,否則數據不會寫入到數據庫中 txn_3.commit() count = 0 txn_3 = env_3.begin(write=True) if(count % 1000 != 0): txn_3.commit() count = 0 txn_3 = env_3.begin(write=True) for (key, value) in database_2: txn_3.put(key, value) if(count % 1000 == 0): txn_3.commit() count = 0 txn_3 = env_3.begin(write=True) if(count % 1000 != 0): txn_3.commit() count = 0 txn_3 = env_3.begin(write=True) # 關閉lmdb env_1.close() env_2.close() env_3.close() print 'Merge success!' # 輸出結果lmdb的狀態信息,可以看到數據是否合并成功 print env_3.stat() def main(): fr = open('lmdb.txt') # lmdb1的目錄 lmdb1 = fr.readline().strip() # lmdb2的目錄 lmdb2 = fr.readline().strip() # result lmdb的目錄 result_lmdb = fr.readline().strip() fr.close() merge_lmdb(lmdb1, lmdb2, result_lmdb) if __name__ == '__main__': main()
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。