非常教程

Python参考手册

数据持久性 | Data Persistence

bsddb

自2.6版以来已弃用:该bsddb模块已在Python 3中删除。

bsddb模块为Berkeley DB库提供了一个接口。用户可以使用适当的公开呼叫创建哈希,btree或基于记录的库文件。Bsddb对象的行为通常与字典类似。但是,键和值必须是字符串,因此要将其他对象用作键或存储其他类型的对象,用户必须以某种方式将它们序列化,通常使用marshal.dumps()pickle.dumps()

bsddb模块需要从4.0到4.7的Berkeley DB库版本。

模块中提供了更现代的DB,DBEnv和DBSequence对象接口,bsddb.db它与上述URL中记录的Berkeley DB C API密切匹配。bsddb.dbAPI 提供的其他功能包括微调,事务处理,日志记录和多进程并发数据库访问。

以下是bsddb与旧的Python bsddb模块兼容的旧界面的描述。从Python 2.5开始,此接口对于多线程访问应该是安全的。该bsddb.dbAPI推荐用于线程用户,因为它提供了更好的控制。

bsddb模块定义了以下函数,用于创建访问适当类型的Berkeley DB文件的对象。每个函数的前两个参数是相同的。为了便于携带,大多数情况下只应使用前两个参数。

bsddb.hashopen(filename[, flag[, mode[, pgsize[, ffactor[, nelem[, cachesize[, lorder[, hflags]]]]]]]])

打开名为filename的哈希格式文件。从不打算保存在磁盘上None文件可以通过传递作为文件名来创建。可选标志标识用于打开文件的模式。它可以是'r'(只读),'w'(读写),'c'(读写 - 如果需要则创建;默认)或'n'(读写 - 截断为零长度)。其他参数很少使用,只传递给低级dbopen()函数。请参阅Berkeley DB文档以获取它们的使用和解释。

bsddb.btopen(filename[, flag[, mode[, btflags[, cachesize[, maxkeypage[, minkeypage[, pgsize[, lorder]]]]]]]])

打开名为filename的btree格式文件。从不打算保存在磁盘上None文件可以通过传递作为文件名来创建。可选标志标识用于打开文件的模式。它可以是'r'(只读),'w'(读写),'c'(读写 - 如果需要则创建;默认)或'n'(读写 - 截断为零长度)。其他参数很少使用,只传递给低级dbopen函数。请参阅Berkeley DB文档以获取它们的使用和解释。

bsddb.rnopen(filename[, flag[, mode[, rnflags[, cachesize[, pgsize[, lorder[, rlen[, delim[, source[, pad]]]]]]]]]])

打开一个名为filename的DB记录格式文件。从不打算保存在磁盘上None文件可以通过传递作为文件名来创建。可选标志标识用于打开文件的模式。它可以是'r'(只读),'w'(读写),'c'(读写 - 如果需要则创建;默认)或'n'(读写 - 截断为零长度)。其他参数很少使用,只传递给低级dbopen函数。请参阅Berkeley DB文档以获取它们的使用和解释。

注释

从2.3开始,Python的某些Unix版本可能有一个bsddb185模块。这只是为了允许与旧Berkeley DB 1.85数据库附带的系统向后兼容。bsddb185不应该直接在新代码中使用该模块。该模块已在Python 3中删除。如果您发现您仍然需要它,请查看PyPI。

1.哈希,BTree和记录对象

一旦实例化,哈希,btree和记录对象支持与字典相同的方法。另外,他们支持下面列出的方法。

在版本2.3.1中进行了更改:添加了字典方法。

bsddbobject.close()

关闭底层文件。该对象不能再被访问。由于open()这些对象没有开放的方法,所以要再次打开文件,bsddb必须调用一个新的模块打开函数。

bsddbobject.keys()

返回DB文件中包含的密钥列表。列表的顺序是未指定的,不应该依赖。特别是,对于不同的文件格式,返回列表的顺序是不同的。

bsddbobject.has_key(key)

返回1如果DB文件中包含的参数作为重点。

bsddbobject.set_location(key)

将游标设置为key所指示的项目并返回包含该键及其值的元组。对于使用二进制树数据库的数据库btopen(),如果key实际上不存在于数据库中,则游标将按照排序顺序指向下一个项目并返回该键和值。对于其他数据库,KeyError如果在数据库中找不到密钥,则会引发其他数据库。

bsddbobject.first()

将光标设置为DB文件中的第一项并返回。除B-Tree数据库外,文件中键的顺序是未指定的。bsddb.error如果数据库为空,则引发此方法。

bsddbobject.next()

将光标设置为DB文件中的下一个项目并将其返回。除B-Tree数据库外,文件中键的顺序是未指定的。

bsddbobject.previous()

将光标设置到数据库文件中的前一项并返回。除B-Tree数据库外,文件中键的顺序是未指定的。这在散列表数据库(打开的数据库hashopen())上不受支持。

bsddbobject.last()

将光标设置为DB文件中的最后一项并返回。文件中的键的顺序是未指定的。这在散列表数据库(打开的数据库hashopen())上不受支持。bsddb.error如果数据库为空,则引发此方法。

bsddbobject.sync()

在磁盘上同步数据库。

例:

>>> import bsddb
>>> db = bsddb.btopen('spam.db', 'c')
>>> for i in range(10): db['%d'%i] = '%d'% (i*i)
...
>>> db['3']
'9'
>>> db.keys()
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
>>> db.first()
('0', '0')
>>> db.next()
('1', '1')
>>> db.last()
('9', '81')
>>> db.set_location('2')
('2', '4')
>>> db.previous()
('1', '1')
>>> for k, v in db.iteritems():
...     print k, v
0 0
1 1
2 4
3 9
4 16
5 25
6 36
7 49
8 64
9 81
>>> '8' in db
True
>>> db.sync()
0
Python

Python 是一种面向对象的解释型计算机程序设计语言,由荷兰人 Guido van Rossum 于1989年发明,第一个公开发行版发行于1991年。 Python 是纯粹的自由软件, 源代码和解释器 CPython 遵循 GPL 协议。Python 语法简洁清晰,特色之一是强制用空白符( white space )作为语句缩进。

主页 https://www.python.org/
源码 https://github.com/python/cpython
版本 2.7
发布版本 2.7.13

Python目录

1.内置常量 | Built-in Constants
2.内置例外 | Built-in Exceptions
3.内置函数 | Built-in Functions
4.内置类型 | Built-in Types
5.编译器 | Compiler
6.加密 | Cryptography
7.数据压缩 | Data Compression
8.数据持久性 | Data Persistence
9.数据类型 | Data Types
10.调试和分析 | Debugging & Profiling
11.开发工具 | Development Tools
12.文件和目录访问 | File & Directory Access
13.文件格式 | File Formats
14.构架 | Frameworks
15.输入 | Importing
16.输入/输出 | Input/ouput
17.国际化 | Internationalization
18.网络 | Internet
19.网络数据 | Internet Data
20.翻译 | Interpreters
21.语言 | Language
22.记录 | Logging
23.Mac OS
24.MS Windows
25.多媒体 | Multimedia
26.联网 | Networking
27.数字与数学 | Numeric & Mathematical
28.操作系统 | Operating System
29.可选操作系统 | Optional Operating System
30.限制执行 | Restricted Execution
31.运行 | Runtime
32.SGI IRIX
33.软件包装与分销 | Software Packaging & Distribution
34.字符串 | String
35.结构化标记 | Structured Markup
36.Tk
37.Unix
38.Python 简介
39.Python pass 语句
40.Python 循环嵌套
41.Python 运算符
42.Python log10() 函数
43.Python log() 函数
44.Python floor() 函数
45.Python fabs() 函数
46.Python exp() 函数
47.Python cmp() 函数
48.Python ceil() 函数
49.Python abs() 函数
50.Python Number(数字)
51.Python pow() 函数
52.Python modf() 函数
53.Python min() 函数
54.Python max() 函数
55.Python asin() 函数
56.Python acos() 函数
57.Python uniform() 函数
58.Python shuffle() 函数
59.Python seed() 函数
60.Python random() 函数
61.Python randrange() 函数
62.Python choice() 函数
63.Python sqrt() 函数
64.Python round() 函数
65.Python radians() 函数
66.Python degrees() 函数
67.Python tan() 函数
68.Python sin() 函数
69.Python hypot() 函数
70.Python cos() 函数
71.Python atan2() 函数
72.Python atan() 函数
73.Python 元组
74.Python 列表(List)
75.Python 字符串
76.Python 字典(Dictionary)
77.Python 日期和时间
78.Python 函数
79.Python 模块
80.Python capitalize()方法
81.Python center()方法
82.Python count() 方法
83.Python expandtabs()方法
84.Python endswith()方法
85.Python encode()方法
86.Python decode()方法
87.Python find()方法
88.Python index()方法
89.Python 异常处理
90.Python isspace()方法
91.Python isnumeric()方法
92.Python islower()方法
93.Python isdigit()方法
94.Python isalpha()方法
95.Python isalnum()方法
96.Python isupper()方法
97.Python istitle()方法
98.Python min()方法
99.Python max()方法
100.Python maketrans()方法