python中lb_python pdfminer

python中lb_python pdfminer1.准备LMDB和SQLite/MySQL等关系型数据库不同,属于key-value数据库(把LMDB想成dict会比较容易理解),键key与值value都是字符串。安装:pipinstalllmdb使用时importlmdb。2.操作流程概况地讲,操作LMDB的流程是:通过env=lmdb.open()打开环境通过txn=env.begin()建立事务通过txn.put(k

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

1. 准备

LMDB和SQLite/MySQL等关系型数据库不同,属于key-value数据库(把LMDB想成dict会比较容易理解),键key与值value都是字符串。

安装:

pip install lmdb

使用时import lmdb。

2. 操作流程

概况地讲,操作LMDB的流程是:

  • 通过env = lmdb.open()打开环境
  • 通过txn = env.begin()建立事务
  • 通过txn.put(key, value)进行插入和修改
  • 通过txn.delete(key)进行删除
  • 通过txn.get(key)进行查询
  • 通过txn.cursor()进行遍历
  • 通过txn.commit()提交更改

3. 操作实例

3.1 建立环境

#!/usr/bin/env python

import lmdb

env = lmdb.open("students");

运行一下,查看当前目录的变化:
这里写图片描述

可以看到当前目录下多了students目录,里面有data.mdb和lock.mdb两个文件。

3.2 插入、删除、修改

插入与修改都用put实现,删除用delete实现。

#!/usr/bin/env python

import lmdb

env = lmdb.open("students");
txn = env.begin(write=True);

txn.put(str(1), "Alice");
txn.put(str(2), "Bob");
txn.put(str(3), "Peter");

txn.delete(str(1));

txn.put(str(3), "Mark");

txn.commit();

注意用txn = env.begin()创建事务时,只有write=True才能够写数据库。

3.3 查询

查单条记录用get(key),遍历数据库用cursor。

#!/usr/bin/env python

import lmdb

env = lmdb.open("students");
# txn = env.begin(write=True);
txn = env.begin();
print txn.get(str(2));

for key, value in txn.cursor():
    print (key, value);

env.close();

运行一下,输出结果为:
这里写图片描述

3.4 完整的例子

#!/usr/bin/env python

import lmdb
import os, sys

def initialize():
    env = lmdb.open("students");
    return env;

def insert(env, sid, name):
    txn = env.begin(write = True);
    txn.put(str(sid), name);
    txn.commit();

def delete(env, sid):
    txn = env.begin(write = True);
    txn.delete(str(sid));
    txn.commit();

def update(env, sid, name):
    txn = env.begin(write = True);
    txn.put(str(sid), name);
    txn.commit();

def search(env, sid):
    txn = env.begin();
    name = txn.get(str(sid));
    return name;

def display(env):
    txn = env.begin();
    cur = txn.cursor();
    for key, value in cur:
        print (key, value);

env = initialize();

print "Insert 3 records."
insert(env, 1, "Alice");
insert(env, 2, "Bob");
insert(env, 3, "Peter");
display(env);

print "Delete the record where sid = 1."
delete(env, 1);
display(env);

print "Update the record where sid = 3."
update(env, 3, "Mark");
display(env);

print "Get the name of student whose sid = 3."
name = search(env, 3);
print name;

env.close();

os.system("rm -r students");

运行一下,输出结果为:
这里写图片描述


转载自:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187835.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SQL语句大全大全(经典珍藏版)

    SQL语句大全大全(经典珍藏版)SQL语句大全–语句功能–数据操作SELECT–从数据库表中检索数据行和列INSERT–向数据库表添加新数据行DELETE–从数据库表中删除数据行UPDATE–更新数据库表中的数据-数据定义CREATETABLE–创建一个数据库表DROPTABLE–从数据库中删除表ALTERTABLE–修改数据库表结构CREATEVIEW

    2022年5月19日
    44
  • 9款最好用的MySQL数据库客户端图形界面管理工具,第三款我用了10年

    9款最好用的MySQL数据库客户端图形界面管理工具,第三款我用了10年MySQL的管理维护工具非常多,除了系统自带的命令行管理工具之外,还有许多其他的图形化管理工具,这里我介绍几个经常使用的MySQL图形化管理工具,供大家参考。MySQL是一个非常流行的小型关系型数据

    2022年7月1日
    20
  • pycharm 使用技巧_pycharm运行

    pycharm 使用技巧_pycharm运行pycharm使用心得(七)一些实用功能介绍http://www.bkjia.com/Pythonjc/780539.html实时比较PyCharm对一个文件里你做的改动保持实时的跟踪,通过在编辑器的左侧栏显示一个蓝色的标记。这一点非常方便,我之前一直是在Eclipse里面用命令“CompareagainstHEAD”来比较一个文件前后的改

    2022年8月28日
    0
  • 完美解决Spring@Autowired无法注入AbstractInterceptor

    完美解决Spring@Autowired无法注入AbstractInterceptor今天在使用AbstractInterceptor拦截时,发现Spring@Autowired无法注入,返回结果为null。捣腾了下,手动配置了下,完美解决。直接上图首先建立一个获取工厂的帮助类:在application配置文件配置我们要用的bean:配置好后,直接调用:好了,该写下一个bug了。。。。。。…

    2022年5月14日
    34
  • C#中实现模拟鼠标事件

    C#中实现模拟鼠标事件

    2021年8月15日
    173
  • CNN算法详细分析

    CNN算法详细分析test_example_CNN.mtrain_x=double(reshape(train_x’,28,28,60000))/255;test_x=double(reshape(test_x’,28,28,10000))/255;train_y=double(train_y’);test_y=double(test_y’);将输入的数据按照规定的形式组织,并归一化。r…

    2022年9月4日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号