python读取lmdb文件_python中读写LMDB数据库
LMDB的全称是Lightning Memory-Mapped Database(快如闪电的内存映射数据库),它的文件结构简单,包含一个数据文件和一个锁文件:
LMDB文件可以同时由多个进程打开,具有极高的数据存取速度,访问简单,不需要运行单独的数据库管理进程,只要在访问数据的代码里引用LMDB库,访问时给文件路径即可。
让系统访问大量小文件的开销很大,而LMDB使用内存映射的方式访问文件,使得文件内寻址的开销非常小,使用指针运算就能实现。数据库单文件还能减少数据集复制/传输过程的开销。
在python中使用lmdb: linux中,可以使用指令‘pip install lmdb’ 安装lmdb包。
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数据库相关推荐
- python读取docx文件_Python应用 | 读写docx文件 (值得收藏的技能)
字处理软件是平时办公必备的同时也是最常用的软件之一,而字处理软件用的最多最频繁的就是微软的word,其扩展名为docx.在日常工作中,可能需要对很多的docx文件进行批处理,例如教师在批阅学生提交的电 ...
- python读取txt文件_python实现读写txt文件的几种方法
一.读写模式: w:向文件中写入内容,w会清空原来文本内容 a:向文件中追加内容 r:从文件中读取内容 wb:以二进制形式写入内容. rb:以二进制形式读文件内容 ab:以二进制形式追加内容 a+.r ...
- python读取log文件_python文件读写(一)-txt, log, json, csv, xml文件
1.概述在平时自动化测试工作中,经常会用python对一些文件进行读写操作.其中使用最多的文件格式,就是txt, log, json, csv, xml, zip, tar, gz, ra ...
- python读取写入文件_Python读取文件,写入文件,打开文件,删除文件,复制文件
python读取写入文件 In this tutorial we are going to learn about Python File Operations such as python read ...
- Python读取指定文件夹中的所有图片并保存
事先说明:本文所有灵感来源于博客python读取文件夹下所有图片 在复现的基础之上作了一些修改,加入了一些自己的心得体会: 改进: 1.原博客要求所读取文件夹与python文件在同一目录下,这里进行了 ...
- python 读取yml文件_python读取yaml配置文件
什么是yaml 1.yaml [ˈjæməl]: Yet Another Markup Language :另一种标记语言.yaml 是专门用来写配置文件的语言,非常简洁和强大, 2.支持多种语言:p ...
- python读取yaml文件_python 怎么读取yaml文件
yaml简介 1.yaml [ˈjæməl]: Yet Another Markup Language:另一种标记语言.yaml 是专门用来写配置文件的语言,非常简洁和强大,之前用ini也能写配置文件 ...
- python读取文件并存入mysql_1.python读取txt文件并插入到mysql数据库以及将py脚本文件打包成独立的exe程序...
读取txt文件并插入到mysql数据库 该小脚本适用于每天生成日志等信息到txt文本,然后通过windows的计划任务定时去执行python脚本打包成的exe文件,并将txt中内容读取以及格式化后插入 ...
- python读取docx文件_Python 实现docx文件的读写操作
我们在做一些数据统计或分析的时候,有时会接触到Execl 格式或者Word 格式的文件.Execl格式的数据提取和解析,我们在之前的文章分享过一些非常好用的Python第三方库,本文中主要介绍如何使用 ...
- python如何创建文件_python中创建文件、读取文件内容
1.选择文件夹,单击右键,点击New -> Python file 2.命名好之后,如我命的就是创建文件. 3.文件命名好了以后,可以编辑代码 如: nf=open("pi_digit ...
最新文章
- 如何为你的博客文章自动添加版权信息?
- python面向对象进阶
- 算法 - KMP算法(字符串匹配)
- 前端重构实践(一) —— 性能优化
- java肯尼亚_对肯尼亚这个国家,你有什么好奇的?对它的第一印象是什么?
- Java代码页面显示报表_Web报表开发中使用快逸报表分页标签:显示第几页和共几页...
- 湖南高职高考计算机,20XX湖南高职对口高考常德市大联考计算机专业试卷(4月)[整理](8页)-原创力文档...
- C#实现所有CRC8,CRC16,CRC32校验算法
- java long 空判断_Long类型null判断带值判断,null必须写在最前面
- IDEA/Android Studio中替换(replace)快捷键
- 几何分布的期望和方差公式推导_GPR(高斯过程回归)详细推导
- GPRS附着,PDP激活失败
- 39.JavaScript中Promise的基本概念、使用方法,回调地狱规避、链式编程
- 自己动手编写CSDN博客备份工具-blogspider源码下载(4)
- Log4j2高危漏洞CNVD-2021-95914分析复现修复
- Python3 创建文件夹
- 计算机网络-自顶向下方法-笔记【第2章-应用层】
- 计算机教师的人生格言,教师人生格言座右铭(精选70句)
- 20行代码爬取原神角色全图
- Python二十行代码实现hexo的md文件格式解析
热门文章
- 50个Windows软件的免费替代品
- cortana 无法使用_如何使用Cortana创建和编辑列表(并将它们与Wunderlist同步)
- android 7.1 默认壁纸拉伸问题
- MVP模式——Okhttp实现下载图片并带有进度 【Android Demo】
- mysql数据抽取_史上最简单的数据抽取
- edup无线网卡驱动安装linux,UBUNTU_15.0.4 usb无线网卡驱动安装方法
- java 读取文件 效率_JAVA读写文本文件的效率
- TIR透镜的设计 Matlab,用于DLP投影系统的自由曲面TIR准直透镜设计
- 小数分频器vhdl实现_使用VHDL进行分频器设计(含小数)
- 浙江学计算机怎么选课,新高考下浙江孩子应怎么选课(专业人士建议)