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正则表达式介绍
Aug 06 Python
Python Property属性的2种用法
Jun 21 Python
Python 中 Meta Classes详解
Feb 13 Python
Pycharm学习教程(7)虚拟机VM的配置教程
May 04 Python
Python实现KNN邻近算法
Jan 28 Python
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
Jul 13 Python
python连接mongodb密码认证实例
Oct 16 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
Nov 22 Python
python3 assert 断言的使用详解 (区别于python2)
Nov 27 Python
tensorflow模型继续训练 fineturn实例
Jan 21 Python
python爬虫可以爬什么
Jun 16 Python
python实现简单遗传算法
Sep 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开发过程中关于继承的使用方法分享
2011/06/17 PHP
基于empty函数的输出详解
2013/06/17 PHP
PHP5.3以上版本安装ZendOptimizer扩展
2015/03/27 PHP
PHP的PDO操作简单示例
2016/03/30 PHP
PHP简单实现冒泡排序的方法
2016/12/26 PHP
Laravel使用消息队列需要注意的一些问题
2017/12/13 PHP
云网广告中的代码,提示出错,大家找找
2006/11/21 Javascript
JavaScript 开发中规范性的一点感想
2009/06/23 Javascript
jquery maxlength使用说明
2011/09/09 Javascript
js Select下拉列表框进行多选、移除、交换内容的具体实现方法
2013/08/13 Javascript
jqgrid 表格数据导出实例
2013/11/21 Javascript
AngularJS入门心得之directive和controller通信过程
2016/01/25 Javascript
vue中mint-ui环境搭建详细介绍
2017/04/06 Javascript
angular中使用Socket.io实例代码
2017/06/03 Javascript
webpack实用小功能介绍
2018/01/02 Javascript
vue2.0 兄弟组件(平级)通讯的实现代码
2018/01/15 Javascript
Vue通过ref父子组件拿值方法
2018/09/12 Javascript
巧妙运用v-model实现父子组件传值的方法示例
2019/04/07 Javascript
微信小程序扫描二维码获取信息实例详解
2019/05/07 Javascript
jQuery中DOM操作原则实例分析
2019/08/01 jQuery
搭建Vue从Vue-cli到router路由护卫的实现
2019/11/14 Javascript
JavaScript oncopy事件用法实例解析
2020/05/13 Javascript
jquery实现简单自动轮播图效果
2020/07/29 jQuery
浅谈vue-props的default写不写有什么区别
2020/08/09 Javascript
Python进阶之递归函数的用法及其示例
2018/01/31 Python
Python控制Firefox方法总结
2019/06/03 Python
Python实现发票自动校核微信机器人的方法
2020/05/22 Python
利用html5的websocket实现websocket聊天室
2013/12/12 HTML / CSS
香港No.1得奖零食网:香港零食大王
2016/07/22 全球购物
会计专业推荐信
2013/10/29 职场文书
CNC数控操作工岗位职责
2013/11/19 职场文书
找工作最新求职信
2013/12/22 职场文书
员工培训邀请函
2014/02/02 职场文书
护士见习期自我鉴定
2014/02/08 职场文书
2014年服务行业工作总结
2014/11/18 职场文书
2015年计生协会工作总结
2015/04/24 职场文书