300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Python读写LMDB文件

Python读写LMDB文件

时间:2024-04-10 03:10:36

相关推荐

Python读写LMDB文件

LMDB的全称是Lightning Memory-Mapped Database,它的文件结构简单,包含一个数据文件和一个锁文件。

LMDB文件可以同时由多个进程打开,具有极高的数据存取速度,访问简单,不需要运行单独的数据库管理进程,只要在访问数据的代码里引用LMDB库,访问时给文件路径即可。

让系统访问大量小文件的开销很大,而LMDB使用内存映射的方式访问文件,使得文件内寻址的开销非常小,使用指针运算就能实现。数据库单文件还能减少数据集复制/传输过程的开销。

在python中使用lmdb: linux中,可以使用指令‘pip install lmdb’ 安装lmdb包。

1. 生成一个空的lmdb数据库文件

importlmdb#如果train文件夹下没有data.mbd或lock.mdb文件,则会生成一个空的,如果有,不会覆盖#map_size定义最大储存容量,单位是kb,以下定义1TB容量env=lmdb.open("./train",map_size=1099511627776)env.close()

2. LMDB数据的添加、修改、删除

importlmdb#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()函数提交更改mit()env.close()

3. 查询lmdb数据库内容

importlmdbenv=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()函数提交更改mit()############################################查询lmdb数据txn=env.begin()#get函数通过键值查询数据printtxn.get(str(2))#通过cursor()遍历所有数据和键值forkey,valueintxn.cursor():print(key,value)############################################env.close()

4. 读取已有lmdb文件内容

importlmdbenv_db=lmdb.Environment('trainC')#env_db=lmdb.open("./trainC")txn=env_db.begin()#get函数通过键值查询数据,如果要查询的键值没有对应数据,则输出Noneprinttxn.get(str(200))forkey,valueintxn.cursor():#遍历print(key,value)env_db.close()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。