У меня есть программа Python, в которой я пытаюсь использовать this rhyming dictionary для поиска рифм.Может ли база данных GDBM, созданная в C, открываться в Python?
Часть программы для библиотеки словарей работает программой C, создающей три файла gdbm .db
. Код, который делает это публично доступны here (от «получить источник» раздела), а ключевая часть 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
создан, и его можно успешно получить доступ из связанного интерфейса командной строки.
Согласно 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
Есть проблема файл несовместимость? Разве некоторые файлы gdbm, созданные в C, не открываются с помощью Python?
(Это с Python 2.7 на OSX 10.6.8. GDBM Python был установлен с помощью MacPorts)
отлично работает для меня: г [ "AY1-М"] = «антикриминальном байм CHIME CLIMB CLIME ПРЕСТУПНОСТИ DIME GRIME HAIM HEIM HIME I'M KIME LIME LYME MIME одноразовая PART-TIME PRIME RHYME RIME SEIM SIME SLIME SUBLIME SYME THYME TIME " Я скомпилировал базу данных, используя стандартную" libgdbm-dev "на Ubuntu (Precise) и прочитать его с помощью Python 2.7.3. –
Хорошо спасибо, это заставляет меня думать, что это проблема, специфичная для OSX. Вероятно, с тем, чтобы использовать GDBM, который я установил через MacPorts и GDBM ОС. –
Эй, Билл. Вы могли удалить библиотеку? Вы могли сравнить заголовки gdbm? –