gpt4 book ai didi

python - bsddb 和 reprepro (berkeley) 数据库

转载 作者:搜寻专家 更新时间:2023-10-30 20:31:43 24 4
gpt4 key购买 nike

我正在尝试读取由 reprepro 创建的数据库文件。我对 bdb 没有那么多经验,所以我在这里可能会感到困惑,但看起来数据库在某种程度上是分层的。

如果我简单地执行 btopen('path/to/packages.db', 'r'),我会得到包含以下内容的数据库对象:

In [4]: packages.items()
Out[4]:
[('local-lenny|main|amd64', '\x00\x00\x00\x04'),
('local-lenny|main|i386', '\x00\x00\x00\x02'),
('local-lenny|main|powerpc', '\x00\x00\x00\x14'),
('local-lenny|main|source', '\x00\x00\x00\x06'),
('local-lenny|main|sparc', '\x00\x00\x00\x12')]

但是 db4.6_dump 显示:

VERSION=3
format=bytevalue
database=local-lenny|main|sparc
type=btree
db_pagesize=4096
HEADER=END
<loads of data>

文件本身标识为:/var/packages/db/packages.db: Berkeley DB(Btree,版本 9, native 字节顺序) by file .

我如何获得这些内容?如果我理解正确的话,我在 keys() 中只得到了实际数据库的名称。我现在如何获取这些数据库的内容?

最佳答案

答案似乎是 bsddb 接口(interface)的“不错”版本不支持一个文件中的多个 btree 表。您可以通过 bsddb.db 显式打开此类表,使用:

env = db.DBEnv()
env.open(None, db.DB_CREATE | db.DB_INIT_MPOOL)
internal_db = db.DB(env)
internal_db.open("the filename", "the internal db name", db.DB_BTREE, db.DB_RDONLY)

关于python - bsddb 和 reprepro (berkeley) 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4563284/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com