Python LMDB库的使用示例


Posted in Python onFebruary 14, 2021

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库的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
从零学Python之引用和类属性的初步理解
May 15 Python
探寻python多线程ctrl+c退出问题解决方案
Oct 23 Python
详解python之多进程和进程池(Processing库)
Jun 09 Python
import的本质解析
Oct 30 Python
用Eclipse写python程序
Feb 10 Python
python调用系统ffmpeg实现视频截图、http发送
Mar 06 Python
python编辑用户登入界面的实现代码
Jul 16 Python
浅谈python中拼接路径os.path.join斜杠的问题
Oct 23 Python
python实现合并两个排序的链表
Mar 03 Python
python的命名规则知识点总结
Oct 04 Python
Python利用PyExecJS库执行JS函数的案例分析
Dec 18 Python
Python函数的迭代器与生成器的示例代码
Jun 18 Python
python 装饰器重要在哪
Feb 14 #Python
python爬虫如何解决图片验证码
Feb 14 #Python
Python实现粒子群算法的示例
Feb 14 #Python
Python中对象的比较操作==和is区别详析
Feb 12 #Python
python绘图模块之利用turtle画图
Feb 12 #Python
Python列表的深复制和浅复制示例详解
Feb 12 #Python
Python就将所有的英文单词首字母变成大写
Feb 12 #Python
You might like
PHP人民币金额数字转中文大写的函数代码
2013/02/27 PHP
thinkphp 多表 事务详解
2013/06/17 PHP
php调整服务器时间的方法
2015/04/03 PHP
php生成图片验证码的实例讲解
2015/08/03 PHP
PHP排序算法之希尔排序(Shell Sort)实例分析
2018/04/20 PHP
php反射学习之不用new方法实例化类操作示例
2019/06/14 PHP
禁止js文件缓存的代码
2010/04/09 Javascript
ExtJs grid行 右键菜单的两种方法
2010/06/19 Javascript
Javascript 中的 call 和 apply使用介绍
2012/02/22 Javascript
js遍历、动态的添加数据的小例子
2013/06/22 Javascript
jquery获取复选框被选中的值
2014/04/10 Javascript
浅析C/C++,Java,PHP,JavaScript,Json数组、对象赋值时最后一个元素后面是否可以带逗号
2016/03/22 Javascript
微信小程序 input输入框控件详解及实例(多种示例)
2016/12/14 Javascript
nodejs根据ip数组在百度地图中进行定位
2017/03/06 NodeJs
从零开始学习Node.js系列教程五:服务器监听方法示例
2017/04/13 Javascript
bootstrap table表格插件使用详解
2017/05/08 Javascript
JavaScript箭头函数_动力节点Java学院整理
2017/06/28 Javascript
Vuex提升学习篇
2018/01/11 Javascript
js实现鼠标点击页面弹出自定义文字效果
2019/12/24 Javascript
如何利用node转发请求详解
2020/09/17 Javascript
[56:47]Ti4 循环赛第三日 iG vs Liquid
2014/07/12 DOTA
python实现数通设备tftp备份配置文件示例
2014/04/02 Python
Python新手们容易犯的几个错误总结
2017/04/01 Python
Python3.6日志Logging模块简单用法示例
2018/06/14 Python
python利用Opencv实现人脸识别功能
2019/04/25 Python
python列表推导式入门学习解析
2019/12/02 Python
python用pip install时安装失败的一系列问题及解决方法
2020/02/24 Python
HTML5 placeholder属性详解
2016/06/22 HTML / CSS
在线吉他课程,学习如何弹吉他:Fender Play
2019/02/28 全球购物
FC-Moto西班牙:摩托车手最大的购物场所之一
2019/04/11 全球购物
六一亲子活动总结
2014/07/01 职场文书
2015年世界无车日活动总结
2015/03/23 职场文书
python 实现德洛内三角剖分的操作
2021/04/22 Python
go mod 安装依赖 unkown revision问题的解决方案
2021/05/06 Golang
python基础学习之生成器与文件系统知识总结
2021/05/25 Python
Vue3.0中Ref与Reactive的区别示例详析
2021/07/07 Vue.js