用C语言创建的GDBM数据库可以在Python中打开吗?



我有一个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/)

相关内容

  • 没有找到相关文章

最新更新