如何用Python合併lmdb檔案

2022-10-04 19:24:13 字數 1988 閱讀 5121

由於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 qfichfmab= 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:

# www.cppcns.com將資料放到結果資料庫事務中

txn_3.put(key, value)

count++

if(count % 1000 == 0):

# 將資料寫入資料庫,必須的,否則資料不會寫入到資料庫中

txn_3.commit()

count = 0

txn_3 = en程式設計客棧v_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.clos程式設計客棧e()

merge_lmdb(lmdb1, lmdb2, result_lmdb)

if __name__ == '__main__':

main()

本文標題: 如何用python合併lmdb檔案

本文位址:

python讀取lmdb檔案 LMDB檔案讀取器

函式 tf.lmdbreader lmdbreader 類 繼承自 readerbase 從 lmdb 檔案中輸出記錄的讀取器.有關支援的方法,請參見 readerbase.屬性reader ref 實現讀取器 reader 的操作.supports serialize 讀取器 reader 實現是...

LMDB檔案的python讀取

1.python語法 列表推導式 2.numpy 一些函式 3.matplotlib 一些函式 4.matplotlib 高階函式 5.執行緒 程序 函式 6.cython的使用 7.lmdb的讀取 lmdb檔案可以同時由多個程序開啟,具有極高的資料訪問速度,訪問簡單,不需要執行單獨的資料庫管理程序...

如何用Python計算Softmax?

softmax函式,或稱歸一化指數函式,它能將乙個含任意實數的k維向量z 壓縮 到另乙個k維實向量 sigma 中,使得每乙個元素的範圍都在 0,1 之間,並且所有元素的和為1。該函式的形式通常按下面的式子給出 sigma frac e quad for j 1,k 輸入向量 1,2,3,4,1,2...