Может GDBM базы данных, созданные в C быть открыт в Python?
У меня есть программа на Python, в которой я пытаюсь использовать этот словарь рифм для поиска рифм.
Часть настройки библиотеки словарей выполняется программой на языке Си, создающей три файла GDB .db
. Код, который делает это публично доступные здесь (с разделе источник'), а ключевая часть с 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 GDB для доступа к базе данных.
Однако я не могу этого сделать. Когда я выполняю следующее:import gdbm
words = gdbm.open('/usr/share/rhyme/words.db')
Я получаю следующую ошибку:
words = gdbm.open('/usr/share/rhyme/words.db')
gdbm.error: Bad magic number
Существует ли проблема несовместимости файлов? Некоторые файлы GDB, созданные в C, не открываются с помощью Python?
(это с Python 2.7 на OSX 10.6.8. GDB Python был установлен через MacPorts)
2 ответа:
Как вы создали слова.файл БД? Это похоже на слова.БД повреждена или находится в формате, не поддерживаемом вашей конкретной версией библиотеки GDB на Mac OS X.
Цитируя создателя питона (все преклоняют колени и повторяют мы недостойны! x3 : -)
Простой -- GDB чувствителен к порядку байтов. Увы, я не знаю. что с этим делать, кроме как конвертировать его в более портативный формат для перенос или исправление источника GDB:- (
--Guido van Rossum (Главная Страница: http://www.python.org / ~Гвидо/)