LMDB檔案的python讀取

2021-09-25 15:00:22 字數 2469 閱讀 1371

1.python語法:列表推導式

2.numpy 一些函式

3.matplotlib 一些函式

4.matplotlib 高階函式

5.執行緒/程序 函式

6.cython的使用

7.lmdb的讀取

lmdb檔案可以同時由多個程序開啟,具有極高的資料訪問速度,訪問簡單,不需要執行單獨的資料庫管理程序,只要在訪問資料的**裡引用lmdb庫,訪問時給檔案路徑即可。

讓系統訪問大量小檔案的開銷很大,而lmdb使用記憶體對映的方式訪問檔案,使得檔案內定址的開銷非常小,使用指標運算就能實現。資料庫單檔案還能減少資料集複製/傳輸過程的開銷。

在python中使用lmdb: linux中,可以使用指令『pip install lmdb』 安裝lmdb包。

生成乙個空的lmdb資料庫檔案

# -*- coding: utf-8 -*- 

import lmdb

# 如果train資料夾下沒有data.mbd或lock.mdb檔案,則會生成乙個空的,如果有,不會覆蓋

# map_size定義最大儲存容量,單位是kb,以下定義1tb容量

env = lmdb.open("./train",map_size=1099511627776)

env.close()

lmdb資料的新增、修改、刪除

# -*- coding: utf-8 -*- 

import lmdb

# map_size定義最大儲存容量,單位是kb,以下定義1tb容量

env = lmdb.open("./train", map_size=1099511627776)

txn = env.begin(write=true)

# 新增資料和鍵值

txn.put(key = '1', value = 'aaa')

txn.put(key = '2', value = 'bbb')

txn.put(key = '3', value = 'ccc')

# 通過鍵值刪除資料

txn.delete(key = '1')

# 修改資料

txn.put(key = '3', value = 'ddd')

# 通過commit()函式提交更改

txn.commit()

env.close()

查詢lmdb資料庫內容

# -*- coding: utf-8 -*- 

import lmdb

env = lmdb.open("./train")

# 引數write設定為true才可以寫入

txn = env.begin(write=true)

############################################新增、修改、刪除資料

# 新增資料和鍵值

txn.put(key = '1', value = 'aaa')

txn.put(key = '2', value = 'bbb')

txn.put(key = '3', value = 'ccc')

# 通過鍵值刪除資料

txn.delete(key = '1')

# 修改資料

txn.put(key = '3', value = 'ddd')

# 通過commit()函式提交更改

txn.commit()

############################################查詢lmdb資料

txn = env.begin()

# get函式通過鍵值查詢資料

print txn.get(str(2))

# 通過cursor()遍歷所有資料和鍵值

for key, value in txn.cursor():

print (key, value)

############################################

env.close()

讀取已有.mdb檔案內容

# -*- coding: utf-8 -*- 

import lmdb

env_db = lmdb.environment('trainc')

# env_db = lmdb.open("./trainc")

txn = env_db.begin()

# get函式通過鍵值查詢資料,如果要查詢的鍵值沒有對應資料,則輸出none

print txn.get(str(200))

for key, value in txn.cursor(): #遍歷

print (key, value)

env_db.close()

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

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

caffe python讀取lmdb檔案

一般用caffe訓練模型的時候,都會首先把資料寫入資料庫,lmdb leveldb,但如果寫入之後想check一下是否寫對了,怎麼去讀lmdb檔案呢?這裡用python 讀取lmdb檔案,檢視其中的內容,看是否符合預期。如下 python 01import caffe 02import lmdb 0...

讀取LMDB檔案的樣本數量

在caffe中一般會把資料轉為lmdb或者leveldb格式,再做訓練,加速訓練過程。如何讀取lmdb檔案呢?比如需要獲知某個lmdb檔案的樣本數量。在python下,比較簡單,生成lmdb後,可以用如下的 獲取 import lmdb env lmdb.open lmdb path txn env...