Python LMDB库的使用示例

linux中,可以使用指令

pip install lmdb

安装lmdb包。

----

  1. lmdb 数据库文件生成
  2. 增 改 删

1、生成一个空的lmdb数据库文件

# -*- coding: utf-8 -*-
import lmdb
# 如果train文件夹下没有data.mbd或lock.mdb文件,则会生成一个空的,如果有,不会覆盖
# map_size定义最大储存容量,单位是kb,以下定义1TB容量
env = lmdb.open("./train",map_size=1099511627776)
env.close()

2、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()

3、查询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()

4. 读取已有.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库的使用示例的详细内容,更多关于Python LMDB库的资料请关注我们其它相关文章!

(0)

相关推荐

  • 如何用Python合并lmdb文件

    由于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 sta

  • 使用python操作lmdb对数据读取的实例

    由于c++速度快,所以一般写入数据我调用c++借口,而读取数据使用c++也行,但有时候Python在某方面方便,所以通过使用python借口仅仅对lmdb文件读取,处理数据是图片 import lmdb import numpy as np import cv2 lmdb_file = "/home/rui/demo" lmdb_env = lmdb.open(lmdb_file) lmdb_txn = lmdb_env.begin() lmdb_cursor = lmdb_txn.c

  • python读取LMDB中图像的方法

    本文实例为大家分享了python读取LMDB中的图像具体代码,供大家参考,具体内容如下 图像数据写入LMDB之后最好再按照写入的逻辑反向解析写入的图像,如果图像能够被还原则证明写入方式是没有问题的. from PIL import Image def read_from_lmdb(lmdb_path,img_save_to): try: lmdb_env=lmdb.open(lmdb_path, map_size=3221225472) lmdb_txn=lmdb_env.begin() lmd

  • python读写LMDB文件的方法

    LMDB的全称是Lightning Memory-Mapped Database(快如闪电的内存映射数据库),它的文件结构简单,包含一个数据文件和一个锁文件: LMDB文件可以同时由多个进程打开,具有极高的数据存取速度,访问简单,不需要运行单独的数据库管理进程,只要在访问数据的代码里引用LMDB库,访问时给文件路径即可. 让系统访问大量小文件的开销很大,而LMDB使用内存映射的方式访问文件,使得文件内寻址的开销非常小,使用指针运算就能实现.数据库单文件还能减少数据集复制/传输过程的开销. 在py

  • Python操作SQLite/MySQL/LMDB数据库的方法

    1.概述 1.1前言 最近在存储字模图像集的时候,需要学习LMDB,趁此机会复习了SQLite和MySQL的使用,一起整理在此. 1.2环境 使用win7,Python 3.5.2. 2.SQLite 2.1准备 SQLite是一种嵌入式数据库,它的数据库就是一个文件.Python 2.5x以上版本内置了SQLite3,使用时直接import sqlite3即可. 2.2操作流程 概括地讲,操作SQLite的流程是: ·通过sqlite3.open()创建与数据库文件的连接对象connectio

  • python生成lmdb格式的文件实例

    在crnn训练的时候需要用到lmdb格式的数据集,下面是python生成lmdb个是数据集的代码,注意一定要在linux系统下,否则会读入图像的时候出问题,可能遇到的问题都在代码里面注释了,看代码即可. #-*- coding:utf-8 -*- import os import lmdb#先pip install这个模块哦 import cv2 import glob import numpy as np def checkImageIsValid(imageBin): if imageBin

  • Python LMDB库的使用示例

    linux中,可以使用指令 pip install lmdb 安装lmdb包. ---- lmdb 数据库文件生成 增 改 删 查 1.生成一个空的lmdb数据库文件 # -*- coding: utf-8 -*- import lmdb # 如果train文件夹下没有data.mbd或lock.mdb文件,则会生成一个空的,如果有,不会覆盖 # map_size定义最大储存容量,单位是kb,以下定义1TB容量 env = lmdb.open("./train",map_size=10

  • python psutil库的使用示例

    由于Bash实在太恶心,很多运维工程师开始使用Python代替Bash写各种脚本. 虽然理论上可以用Python调用Bash指令实现各种功能,但是给各种命令写Bash wrapper还要解析输出实在太麻烦.所以我们还是希望用原生Python库来实现各种功能. 今天我推荐一个好用的Python库psutil. psutil一个能够跨平台使用的库.可以用来获取系统信息(CPU.内存.磁盘.网络)和进程信息. 它可以被用来替代这些UNIX的系统命令:ps, top, lsof, netstat, if

  • Python Requests库基本用法示例

    本文实例讲述了Python Requests库基本用法.分享给大家供大家参考,具体如下: requests是python的一个http client库,提供了一套简捷的API供开发者使用.下面简单介绍一下其安装和使用.这里是官方文档. 0 安装 pip install requests 1 发送请求 r=requests.get('https://www.baidu.com') print r.status_code,r.text r=requests.post('http://httpbin.

  • Python数学建模PuLP库线性规划入门示例详解

    目录 1.什么是线性规划 2.PuLP 库求解线性规划 -(0)导入 PuLP库函数 -(1)定义一个规划问题 -(2)定义决策变量 -(3)添加目标函数 -(4)添加约束条件 -(5)求解 3.Python程序和运行结果 1.什么是线性规划 线性规划(Linear programming),在线性等式或不等式约束条件下求解线性目标函数的极值问题,常用于解决资源分配.生产调度和混合问题.例如: max fx = 2*x1 + 3*x2 - 5*x3 s.t. x1 + 3*x2 + x3 <=

  • Python黑魔法库安装及操作字典示例详解

    目录 1. 安装方法 2. 简单示例 3. 兼容字典的所有操作 4. 设置返回默认值 5. 工厂函数自动创建key 6. 序列化的支持 7. 说说局限性 本篇文章收录于<Python黑魔法手册>v3.0 第七章,手册完整版在线阅读地址:Python黑魔法手册 3.0 文档 字典是 Python 中基础的数据结构之一,字典的使用,可以说是非常的简单粗暴,但即便是这样一个与世无争的数据结构,仍然有很多人 "用不惯它" . 也许你并不觉得,但我相信,你看了这篇文章后,一定会和我一

  • Python定时库APScheduler的原理以及用法示例

    目录 1. APScheduler简介 2. APScheduler组件 2.1. APScheduler中几个重要的概念 2.1.1. Job 作业 2.1.2. Trigger 触发器 2.1.3. Executor 执行器 2.1.4. Jobstore 作业存储 2.1.5. Event 事件 2.1.6. Listener 监听事件 2.1.7. Scheduler 调度器 2.2. Scheduler工作流程图 2.2.1. Scheduler添加job流程 2.2.2 Schedu

  • Python tkinter库绘制春联和福字的示例详解

    马上要过年了,用 Python 写一副春联&福字送给大家,本文我们主要用到的 Python 库为 tkinter,下面一起来看一下具体实现. 首先,我们创建一个画布,代码实现如下: root=Tk() root.title('新年快乐') canvas=Canvas(root,width=500,height=460,bg='lightsalmon') 看一下效果: 我们接着写上联,主要代码实现如下: for i in range(0,451): canvas.create_rectangle(

  • Python docx库删除复制paragraph及行高设置图片插入示例

    目录 引言 1.复制paragraph 2.删除paragraph 3.插入图片和paragraph行高设置 引言 这两天做一个python小工具,用到了docx库,涉及到paragraph的删除.,还有行高设置等技术,这里做一下记录. 1.复制paragraph 即用来原文档的加粗.斜体,下划线,颜色等属性的,官方没有提供paragraph的接口,只能自己实现: # paragraph 的 def get_para_data(output_doc_name, paragraph): "&quo

  • Python机器学习库scikit-learn入门开发示例

    目录 1.数据采集和标记 2.特征选择 3.数据清洗 4.模型选择 5.模型训练 6.模型测试 7.模型保存与加载 8.实例 数据采集和标记 特征选择 模型训练 模型测试 模型保存与加载 1.数据采集和标记 先采集数据,再对数据进行标记.其中采集数据要就有代表性,以确保最终训练出来模型的准确性. 2.特征选择 选择特征的直观方法:直接使用图片的每个像素点作为一个特征. 数据保存为样本个数×特征个数格式的array对象.scikit-learn使用Numpy的array对象来表示数据,所有的图片数

  • Python标准库中的logging用法示例详解

    目录 1.logging的介绍 2.简单用法示例 3.日志级别 4.打印格式的各个参数 5.日志输出到指定文件 6.日志回滚(按照文件大小滚动) 7.日志回滚(按照时间滚动) 1.logging的介绍 logging是Python标准库中记录常用的记录日志库,通过logging模块存储各种格式的日志,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等. 2.简单用法示例 首先创建一个logger.py的文件,其里面的代码如下所示: import logging # 1.创

随机推荐