Python lmdb使用
2017-08-07 18:59
134 查看
1. 准备
LMDB和SQLite/MySQL等关系型数据库不同,属于key-value数据库(把LMDB想成dict会比较容易理解),键key与值value都是字符串。安装:
pip install lmdb
使用时import lmdb。
2. 操作流程
概况地讲,操作LMDB的流程是:通过env = lmdb.open()打开环境
通过txn = env.begin()建立事务
通过txn.put(key, value)进行插入和修改
通过txn.delete(key)进行删除
通过txn.get(key)进行查询
通过txn.cursor()进行遍历
通过txn.commit()提交更改
3. 操作实例
3.1 建立环境
#!/usr/bin/env python import lmdb env = lmdb.open("students");
运行一下,查看当前目录的变化:
可以看到当前目录下多了students目录,里面有data.mdb和lock.mdb两个文件。
3.2 插入、删除、修改
插入与修改都用put实现,删除用delete实现。#!/usr/bin/env python import lmdb env = lmdb.open("students");
txn = env.begin(write=True);
txn.put(str(1), "Alice");
txn.put(str(2), "Bob");
txn.put(str(3), "Peter");
txn.delete(str(1));
txn.put(str(3), "Mark");
txn.commit();
注意用txn = env.begin()创建事务时,只有
write=True才能够写数据库。
3.3 查询
查单条记录用get(key),遍历数据库用cursor。#!/usr/bin/env python import lmdb env = lmdb.open("students");
# txn = env.begin(write=True);
txn = env.begin();
print txn.get(str(2));
for key, value in txn.cursor():
a517
(key, value);
env.close();
运行一下,输出结果为:
3.4 完整的例子
#!/usr/bin/env python import lmdb import os, sys def initialize(): env = lmdb.open("students"); return env; def insert(env, sid, name): txn = env.begin(write = True); txn.put(str(sid), name); txn.commit(); def delete(env, sid): txn = env.begin(write = True); txn.delete(str(sid)); txn.commit(); def update(env, sid, name): txn = env.begin(write = True); txn.put(str(sid), name); txn.commit(); def search(env, sid): txn = env.begin(); name = txn.get(str(sid)); return name; def display(env): txn = env.begin(); cur = txn.cursor(); for key, value in cur: print (key, value); env = initialize(); print "Insert 3 records." insert(env, 1, "Alice"); insert(env, 2, "Bob"); insert(env, 3, "Peter"); display(env); print "Delete the record where sid = 1." delete(env, 1); display(env); print "Update the record where sid = 3." update(env, 3, "Mark"); display(env); print "Get the name of student whose sid = 3." name = search(env, 3); print name; env.close(); os.system("rm -r students");
运行一下,输出结果为:
转载自:
http://blog.csdn.net/haluoluo211/article/details/54428026
http://www.jianshu.com/p/66496c8726a1
相关文章推荐
- 【Python配置】lmdb使用
- 用Python将多标签数据存入caffe使用的HDF5&LMDB格式
- caffe使用python创建lmdb
- python lmdb使用
- Caffe学习笔记(二):使用Python生成caffe所需的lmdb文件和txt列表清单文件
- python 进行多线程编程,使用Semaphore控制线程数
- 在python 中使用 windows dll
- Python模块之chardir: 使用chartdir生成各种图表
- 在python 中使用正则表达式
- 关于在组件GIS开发中使用Python的一点补充说明
- 使用minidom来处理XML的示例(Python 学习)(转载)
- C Java PHP Perl Python 的程序代码美化工具(Pretty Print Program/Source Code Beautifier)使用
- 在IE中使用Python作为开发脚本
- Python使用Com组件及Access查询分析类实现
- 使用SWIG实现C++扩展Python
- unix下面使用python无法广播
- 使用python发送简单的邮件
- 在 Python中使用 cout << 'Hello,world!' << endl
- 第一次使用python
- Windows下使用Python通过ODBC/ADO访问数据库