Использование кросс-платформенной платформы для python

Я надеюсь на небольшой совет на полках/базах данных на Python.

Проблема: у меня есть база данных, созданная на Mac, которую я хочу использовать на Windows 7. Я использую Python 3.2, MacOS 10.7 и выигрываю 7.

Когда я открываю и сохраняю свой полк на Mac, все хорошо и хорошо. Я получаю файл с расширением ".db". На моем windows-python он не распознается. Однако я могу создать новый db на компьютере и получить файлы с расширениями ".bak, dat,.dir".

Я предполагаю, что на python на компьютере нет той же базовой базы данных, что и мой mac-python?

Я не уверен, что здесь правильный подход, но, может быть, я мог:

Измените default-db, который используют мои системы? Узнайте, какой db мой mac-python использует и добавляет, что на ПК? Измените способ хранения моих данных вместе?

Скорость не является проблемой, размер данных составляет несколько мегабайт, и к ней не обращались очень часто.

Надеюсь найти руку помощи там. Спасибо заранее - любая помощь очень ценится.

/Esben

Что я делаю:

Import shelve
db = shelve.open('mydb')
entries = db['list']
db.close

Это довольно прямолинейно, у меня есть рабочий db файл под названием "mydb.db" на Mac, но когда я пытаюсь открыть его на pc-python, я получаю:

Traceback (последний последний вызов): Файл "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/dbm/ init.py", строка 107, в которойdb   f = io.open(имя файла + ".pag", "rb" ) IOError: [Errno 2] Нет такого файла или каталога: 'mydb.pag'

Ответ 1

Спасибо за ваш ответ!

Кажется, что полки на питоне нелегко заставить использовать конкретный дБ, однако соленья работают как шарм. По крайней мере, из mac os → windows 7.

Так короткий ответ: если вы хотите переносить, не используйте полки, используйте соленые огурцы напрямую.

/Esben

Ответ 2

Модуль sqlite3 - это кросс-платформенный модуль, который поддерживается многими другими языками и инструментами.

модуль рассола прост, но также и кросс-платформенный. Вы даете ему объект, и он выгружает его в файл. Нет таблиц или строк, таких как sqlite.