python lmdb读写

直接上代码。

import lmdb

def create():
    env = lmdb.open('/home/dataset/ReCTS/tmp_lmdb', map_size=1099511627776)
    txn = env.begin(write=True)
    txn.put('a'.encode(), 'q'.encode())    # 写入
    txn.put('s'.encode(), 'w'.encode())
    txn.commit()    # 提交
    env.close()

def read():
    env = lmdb.open('/home/dataset/ReCTS/tmp_lmdb', readonly=True, max_readers=1, lock=False, readahead=False, meminit=False)
    with env.begin(write=False) as txn:
        print(txn.get('a'.encode()).decode())    # get()方法
        for k, v in txn.cursor():    # cursor()用于遍历
            print(k.decode(), v.decode())
    env.close()

create()
read()

结果为:

q
a q
s w

千万要注意 txn.commit()不要漏掉,否则占了内存还不能读取。不过也可以使用with ... as ...省去此步:

def create():
    env = lmdb.open('/home/dataset/ReCTS/tmp_lmdb', map_size=1099511627776)
    with env.begin(write=True) as txn:
        txn.put('a'.encode(), 'q'.encode())
        txn.put('s'.encode(), 'w'.encode())
    env.close()

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值