欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何用Python合并lmdb文件

 更新時(shí)間:2022年05月20日 09:55:36   作者:SnailTyan  
這篇文章主要為大家詳細(xì)介紹了如何用Python合并lmdb文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

由于Caffe使用的存儲(chǔ)圖像的數(shù)據(jù)庫(kù)是lmdb,因此有時(shí)候需要對(duì)lmdb文件進(jìn)行操作,本文主要講解如何用Python合并lmdb文件。沒(méi)有l(wèi)mdb支持的,需要用pip命令安裝。

pip install lmdb

代碼及注釋如下:

# coding=utf-8
# filename: merge_lmdb.py

import lmdb

# 將兩個(gè)lmdb文件合并成一個(gè)新的lmdb
def merge_lmdb(lmdb1, lmdb2, result_lmdb):

  print 'Merge start!'

  # env代表Environment, txn代表Transaction

  # 打開lmdb文件,讀模式
  env_1 = lmdb.open(lmdb1)
  env_2 = lmdb.open(lmdb2)

  # 創(chuàng)建事務(wù)
  txn_1 = env_1.begin()
  txn_2 = env_2.begin()

  # 打開數(shù)據(jù)庫(kù)
  database_1 = txn_1.cursor()
  database_2 = txn_2.cursor()

  # 打開lmdb文件,寫模式,
  env_3 = lmdb.open(result_lmdb, map_size=int(1e12))
  txn_3 = env_3.begin(write=True)

  count = 0
  # 遍歷數(shù)據(jù)庫(kù)
  for (key, value) in database_1:
    # 將數(shù)據(jù)放到結(jié)果數(shù)據(jù)庫(kù)事務(wù)中
    txn_3.put(key, value)
    count++
    if(count % 1000 == 0):
      # 將數(shù)據(jù)寫入數(shù)據(jù)庫(kù),必須的,否則數(shù)據(jù)不會(huì)寫入到數(shù)據(jù)庫(kù)中
      txn_3.commit()
      count = 0
      txn_3 = env_3.begin(write=True)

  if(count % 1000 != 0):
    txn_3.commit()
    count = 0
    txn_3 = env_3.begin(write=True)

  for (key, value) in database_2:
    txn_3.put(key, value)
    if(count % 1000 == 0):
      txn_3.commit()
      count = 0
      txn_3 = env_3.begin(write=True)

  if(count % 1000 != 0):
    txn_3.commit()
    count = 0
    txn_3 = env_3.begin(write=True)

  # 關(guān)閉lmdb
  env_1.close()
  env_2.close()
  env_3.close()

  print 'Merge success!'

  # 輸出結(jié)果lmdb的狀態(tài)信息,可以看到數(shù)據(jù)是否合并成功
  print env_3.stat()

def main():
  fr = open('lmdb.txt')
  # lmdb1的目錄
  lmdb1 = fr.readline().strip()
  # lmdb2的目錄
  lmdb2 = fr.readline().strip()
  # result lmdb的目錄
  result_lmdb = fr.readline().strip()
  fr.close()
  merge_lmdb(lmdb1, lmdb2, result_lmdb)

if __name__ == '__main__':
  main()

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python 實(shí)現(xiàn)矩陣填充0的例子

    python 實(shí)現(xiàn)矩陣填充0的例子

    今天小編就為大家分享一篇python 實(shí)現(xiàn)矩陣填充0的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • Python實(shí)例一個(gè)類背后發(fā)生了什么

    Python實(shí)例一個(gè)類背后發(fā)生了什么

    Python實(shí)例一個(gè)類背后發(fā)生了什么,本文為大家一一列出,感興趣的朋友可以參考一下
    2016-02-02
  • 使用 Python 創(chuàng)建一個(gè)基于規(guī)則的聊天機(jī)器人

    使用 Python 創(chuàng)建一個(gè)基于規(guī)則的聊天機(jī)器人

    這篇文章主要介紹了使用 Python 創(chuàng)建一個(gè)基于規(guī)則的聊天機(jī)器人,使用 Python 創(chuàng)建一個(gè)簡(jiǎn)單的基于規(guī)則的聊天機(jī)器人 聊天機(jī)器人本身是一種機(jī)器或軟件,它通過(guò)文本或句子模仿人類交互。 簡(jiǎn)而言之,可以使用類似于與人類對(duì)話的軟件進(jìn)行聊天。
    2021-10-10
  • 詳解python3中用HTMLTestRunner.py報(bào)ImportError: No module named ''StringIO''如何解決

    詳解python3中用HTMLTestRunner.py報(bào)ImportError: No module named ''

    這篇文章主要介紹了詳解python3中用HTMLTestRunner.py報(bào)ImportError: No module named 'StringIO'如何解決,感興趣的可以了解一下
    2019-08-08
  • Python如何通過(guò)內(nèi)存管理提升程序執(zhí)行效率

    Python如何通過(guò)內(nèi)存管理提升程序執(zhí)行效率

    Python提供了自動(dòng)內(nèi)存管理的功能,但是如果不小心使用,可能會(huì)導(dǎo)致內(nèi)存泄漏和性能問(wèn)題,所以巧妙使用內(nèi)存管理是提高Python執(zhí)行效率的關(guān)鍵,下面就來(lái)和大家仔細(xì)講講Python的內(nèi)存管理技巧吧
    2023-06-06
  • Django 中間鍵和上下文處理器的使用

    Django 中間鍵和上下文處理器的使用

    這篇文章主要介紹了Django 中間鍵和上下文處理器的使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-03-03
  • Python之Matlibplot畫圖功能演示過(guò)程

    Python之Matlibplot畫圖功能演示過(guò)程

    這篇文章主要介紹了Python之Matlibplot畫圖功能演示過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Python基于xlutils修改表格內(nèi)容過(guò)程解析

    Python基于xlutils修改表格內(nèi)容過(guò)程解析

    這篇文章主要介紹了Python基于xlutils修改表格內(nèi)容過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Keras存在自定義loss或layer怎樣解決load_model報(bào)錯(cuò)問(wèn)題

    Keras存在自定義loss或layer怎樣解決load_model報(bào)錯(cuò)問(wèn)題

    這篇文章主要介紹了Keras存在自定義loss或layer怎樣解決load_model報(bào)錯(cuò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Python進(jìn)制轉(zhuǎn)換用法詳解

    Python進(jìn)制轉(zhuǎn)換用法詳解

    大家好,本篇文章主要講的是Python進(jìn)制轉(zhuǎn)換用法詳解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01

最新評(píng)論