如何用Python合并lmdb文件
由于Caffe使用的存储图像的数据库是lmdb,因此有时候需要对lmdb文件进行操作,本文主要讲解如何用Python合并lmdb文件。没有lmdb支持的,需要用pip命令安装。
pipinstalllmdb
代码及注释如下:
#coding=utf-8 #filename:merge_lmdb.py importlmdb #将两个lmdb文件合并成一个新的lmdb defmerge_lmdb(lmdb1,lmdb2,result_lmdb): print'Mergestart!' #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)indatabase_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)indatabase_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'Mergesuccess!' #输出结果lmdb的状态信息,可以看到数据是否合并成功 printenv_3.stat() defmain(): fr=open('lmdb.txt') #lmdb1的目录 lmdb1=fr.readline().strip() #lmdb2的目录 lmdb2=fr.readline().strip() #resultlmdb的目录 result_lmdb=fr.readline().strip() fr.close() merge_lmdb(lmdb1,lmdb2,result_lmdb) if__name__=='__main__': main()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。