我有一个Python程序,在其中我试图使用this rhyming dictionary查找押韵。
字典库设置的一部分是由一个C程序创建三个gdbm.db文件来完成的执行此操作的代码是公共可用的here(来自“获取源代码”部分),而C gdbm builder的关键部分如下所示:

#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>...

compile.c已创建,可以从绑定的命令行界面成功访问它。
根据the library's example page,我应该能够使用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上的Python2.7Python的gdbm是通过MacPorts安装的)

最佳答案

如何创建words.db文件words.db似乎已损坏,或者格式不受Mac OS X上特定版本的gdbm库支持。

关于python - 可以用Python打开用C创建的GDBM数据库吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16005686/

10-11 20:57