激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - python讀寫LMDB文件的方法

python讀寫LMDB文件的方法

2021-03-12 00:14Touch_Dream Python

這篇文章主要為大家詳細(xì)介紹了python讀寫LMDB文件的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

LMDB的全稱是Lightning Memory-Mapped Database(快如閃電的內(nèi)存映射數(shù)據(jù)庫),它的文件結(jié)構(gòu)簡單,包含一個(gè)數(shù)據(jù)文件和一個(gè)鎖文件:

python讀寫LMDB文件的方法

LMDB文件可以同時(shí)由多個(gè)進(jìn)程打開,具有極高的數(shù)據(jù)存取速度,訪問簡單,不需要運(yùn)行單獨(dú)的數(shù)據(jù)庫管理進(jìn)程,只要在訪問數(shù)據(jù)的代碼里引用LMDB庫,訪問時(shí)給文件路徑即可。

讓系統(tǒng)訪問大量小文件的開銷很大,而LMDB使用內(nèi)存映射的方式訪問文件,使得文件內(nèi)尋址的開銷非常小,使用指針運(yùn)算就能實(shí)現(xiàn)。數(shù)據(jù)庫單文件還能減少數(shù)據(jù)集復(fù)制/傳輸過程的開銷。

python中使用lmdb: linux中,可以使用指令‘pip install lmdb' 安裝lmdb包。

1. 生成一個(gè)空的lmdb數(shù)據(jù)庫文件

?
1
2
3
4
5
6
7
# -*- coding: utf-8 -*-
import lmdb
 
# 如果train文件夾下沒有data.mbd或lock.mdb文件,則會生成一個(gè)空的,如果有,不會覆蓋
# map_size定義最大儲存容量,單位是kb,以下定義1TB容量
env = lmdb.open("./train",map_size=1099511627776)
env.close()

2. LMDB數(shù)據(jù)的添加、修改、刪除

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# -*- coding: utf-8 -*-
import lmdb
 
# map_size定義最大儲存容量,單位是kb,以下定義1TB容量
env = lmdb.open("./train", map_size=1099511627776)
 
txn = env.begin(write=True)
 
# 添加數(shù)據(jù)和鍵值
txn.put(key = '1', value = 'aaa')
txn.put(key = '2', value = 'bbb')
txn.put(key = '3', value = 'ccc')
 
# 通過鍵值刪除數(shù)據(jù)
txn.delete(key = '1')
 
# 修改數(shù)據(jù)
txn.put(key = '3', value = 'ddd')
 
# 通過commit()函數(shù)提交更改
txn.commit()
env.close()

3. 查詢lmdb數(shù)據(jù)庫內(nèi)容

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# -*- coding: utf-8 -*-
import lmdb
 
env = lmdb.open("./train")
 
# 參數(shù)write設(shè)置為True才可以寫入
txn = env.begin(write=True)
############################################添加、修改、刪除數(shù)據(jù)
 
# 添加數(shù)據(jù)和鍵值
txn.put(key = '1', value = 'aaa')
txn.put(key = '2', value = 'bbb')
txn.put(key = '3', value = 'ccc')
 
# 通過鍵值刪除數(shù)據(jù)
txn.delete(key = '1')
 
# 修改數(shù)據(jù)
txn.put(key = '3', value = 'ddd')
 
# 通過commit()函數(shù)提交更改
txn.commit()
############################################查詢lmdb數(shù)據(jù)
txn = env.begin()
 
# get函數(shù)通過鍵值查詢數(shù)據(jù)
print txn.get(str(2))
 
# 通過cursor()遍歷所有數(shù)據(jù)和鍵值
for key, value in txn.cursor():
  print (key, value)
   
############################################
 
env.close()

4. 讀取已有.mdb文件內(nèi)容

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# -*- coding: utf-8 -*-
import lmdb
 
env_db = lmdb.Environment('trainC')
# env_db = lmdb.open("./trainC")
 
txn = env_db.begin()
 
# get函數(shù)通過鍵值查詢數(shù)據(jù),如果要查詢的鍵值沒有對應(yīng)數(shù)據(jù),則輸出None
print txn.get(str(200))
 
for key, value in txn.cursor(): #遍歷
  print (key, value)
 
env_db.close()

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://blog.csdn.net/touch_dream/article/details/80527341

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: xxxx8| 久久精品视频69 | 免费看成年人网站 | 免费看黄色一级大片 | 亚洲成人在线视频网站 | 精品中文字幕在线播放 | 日本在线播放一区二区三区 | 国产亚洲精品影达达兔 | 国产精品成人一区二区三区吃奶 | 日本s级毛片免费观看 | 日韩99 | 在线观看国产免费视频 | 日本黄色免费观看视频 | 亚洲精品一区二区三区在线看 | 成人国产高清 | 狠狠久久| 久久久久久久久久久亚洲 | 色av综合在线 | 黄色毛片免费视频 | 特级黄一级播放 | 亚洲一区二区三区视频免费 | 欧美精品一区二区性色 | 精品久久久久久久久久久αⅴ | 午夜偷拍视频 | 免费一级高清毛片 | 国产毛片毛片毛片 | 毛片午夜 | 青青草免费观看 | 久久精品国产99国产精品澳门 | 高清国产免费 | www日韩在线观看 | 一级在线观看视频 | 中文字幕 欧美 日韩 | 国产精品久久久在线观看 | 中文字幕综合 | 欧美一级特黄aaaaaaa什 | 亚洲第一男人天堂 | 亚洲成人精品久久久 | 日本免费a∨ | 91精品国产777在线观看 | 日韩视频中文 |