import lmdb

lmdb_img_name = "test.lmdb"
env = lmdb.open(lmdb_img_name, map_size=1e6) with env.begin(write=True) as txn:
txn.put("key", "xxxxxxxxxxxxxxxxxx")
txn.put("key2", "?")
txn.put("key3", "some value")
#txn.commit()
env.close() env = lmdb.open(lmdb_img_name, readonly=True)
with env.begin() as txn:
print txn.get(b'key') cursor = txn.cursor()
for key, value in cursor:
print(key, value)

更多见:http://blog.csdn.net/ayst123/article/details/44077903,摘录如下:

write

db_img = lmdb.Environment(lmdb_img_name,map_size=int(1e12))
txn_img = db_img.begin(write=True,buffers=True)
datum_img = getImgDatum(img_path)
txn_img.put(key,datum_img.SerializeToString())
txn_img.commit()
db_img.close()

这里,先建立lmdb的instance, db_img。 然后开始txn(可能有很多个开始?)。 put 存放,最后一定注意要commit()。不然根本没有存进去,检查下生成的lmdb文件就能看出。最后,close()

这里生成datum是用caffe自带的函数,做io.py里,叫caffe.io.array_to_datum, 将array变成datum.

Note:

datum存的时候一定要用datum.SerializeToString(), 将它变成string()

分段write

for ind,obj in enumerate(list):
if ind%100=0:
txn.commit()
txn = env.begin(write=True) txn.commit()
env.close()

每一次commit 后,需要再定义一次 txn=env.begin(write=True) 
for loop 外面最后再 commit

Read

img_lmdb = imdb.open("name")
txn= img_lmdb.begin()
cursor = txn.cursor()
cursor.iternext()
key = cursor.key()
value = cursor.value() datum = caffe_pb2.Datum()
datum.ParseFromString(value)

Note:

cursor 第一个是空的, iternext()后是第一个值

循环

txn = … 
cursor = txn.cursor() 
for ( idx, (key, value) ) in enumerate(cursor): 
…………….

这就可以循环找了

最新文章

  1. iOS开发中的权限
  2. JSON数据解析(GSON方式) (转)
  3. 【RabbitMQ】RabbitMQ在Windows的安装和简单的使用
  4. 《微信小程序七日谈》- 第一天:人生若只如初见
  5. 报错:对象必须实现 IConvertible;以分隔符进行分割链接concat_ws的使用方法;mysql数据类型转换cast,convert
  6. Java文件操作 读写操作
  7. myEclipse Debug
  8. Linux-进程描述(4)之进程优先级与进程创建执行
  9. c语言项目开发流程一部曲
  10. gitlab之一: gitlab安装配置使用
  11. 银联支付 Asp.Net 对接开发内容简介
  12. 基础数据类型补充,及capy daty7
  13. hdu3374 kmp+最小表示法
  14. CentOS7中实用的命令总结
  15. linux用户管理和文件权限
  16. .NET Framwork 之 源代码编译成托管代码托管代码合并成程序集
  17. Spring MVC 4.2 增加 CORS 支持
  18. 【Python】Python 模块一考核
  19. delphi 在线程中运行控制台命令(console)
  20. python——获取数据类型

热门文章

  1. VC使用CryptoAPI计算MD5
  2. 查看Windows XP是否已激活的方法
  3. 汇总——WEB前端资源网
  4. SQL几种常用的函数
  5. day2笔记
  6. 可以用作javascript异步模式的函数写法
  7. 【vue】挂载点概念
  8. enote笔记语言(4)(ver0.4)——“5w1h2k”分析法
  9. cogs——66. [HAOI2004模拟] 数列问题
  10. 1、深度学习模型的基本结构——RNN