我有一个Python程序,我试图使用这个押韵字典来查找押韵。
字典库的部分设置是通过一个C程序创建三个gdbm .db
文件来完成的。完成此操作的代码可以在这里公开获得(从"获取源代码"一节),C gdbm构建器compile.c
的关键部分如下所示:
#include <gdbm.h>
...<snip>...
int main(int argc, char *argv[]) {
FILE *input;
GDBM_FILE output;
...<snip>...
output = gdbm_open(argv[2], 0, GDBM_NEWDB, 0644, 0);
...<snip>...
gdbm_sync(output);
...<snip>...
创建了 words.db
,可以通过绑定的命令行接口成功访问。
根据库的示例页,我应该能够使用python gdbm模块访问数据库。
然而,我不能。当我运行以下命令时:
import gdbm
words = gdbm.open('/usr/share/rhyme/words.db')
我得到以下错误:
words = gdbm.open('/usr/share/rhyme/words.db')
gdbm.error: Bad magic number
是否存在文件不兼容问题?在C中创建的一些gdbm文件不能用Python打开吗?
(这是在OSX 10.6.8上的Python 2.7。Python的gdbm是通过MacPorts安装的)
您是如何创建word .db文件的?看起来word .db已经损坏,或者是Mac OS x上特定版本的gdbm库不支持的格式。
引用Python的创造者的话(都跪下重复我们不配! x3:-)
Simple——gdbm对字节顺序很敏感。唉,我不知道除了将其转换为更可移植的格式之外,该怎么办呢传输或修补GDBM源:-(
)—Guido van Rossum(主页:http://www.python.org/~guido/)