Как получить доступ к файлам ODB в Python 2.7

Я хочу получить доступ к файлу ODB (созданному с помощью LibreOffice Base) в Python и извлечь таблицу для дальнейшего использования. ODB содержит несколько таблиц, один дизайн отношений и несколько форм.

Можно ли добиться этого без использования SQL?

Редактировать: Поскольку самостоятельный анализ этого формата кажется слишком сложным, я рассмотрю возможность использования подходящего механизма HSQLDB.

Какой модуль python получает доступ через HSQL (например, sqlite3 для SQLite)?


person rypel    schedule 06.07.2012    source источник
comment
Если вы не используете какую-либо форму SQL ODB, которую обычно использует ODB, вам придется написать свой собственный синтаксический анализатор для формата, что будет намного сложнее, чем использование предварительно созданной библиотеки и изучение того, как писать запросы.   -  person Endophage    schedule 07.07.2012
comment
@Endophage: я понимаю твою точку зрения. Будет ли sqlite3 работать с ODB?   -  person rypel    schedule 07.07.2012
comment
sqlite3 — это собственная реализация базы данных. Я считаю (но я действительно не могу сказать на 100%), что это не имеет никакого отношения к ODB, кроме того, что они обе базы данных ... как Windows и Linux являются обеими операционными системами. Вам нужно будет найти библиотеку python специально для ODB. IRC-канал Python — хорошее место, чтобы спросить, не отвечает ли здесь кто-нибудь.   -  person Endophage    schedule 07.07.2012
comment
Если вы просто хотите извлечь таблицу, может быть, не проще экспортировать ее в формате CSV в LibreOffice, а затем импортировать во что-то с лучшей поддержкой Python?   -  person Aya    schedule 30.05.2013
comment
@Aya: это было бы проще, но я хотел выучить SQL с помощью этого, например. использовать клиент для выполнения запросов и т. д.   -  person rypel    schedule 31.05.2013


Ответы (2)


Вы можете рассмотреть API-интерфейс Python Uno, который поставляется с OpenOffice. Существует несколько примеров Python для взаимодействия с API, включая один с примером базы данных

Существует также этот SO вопрос, где это объясняется как использовать uno с LibreOffice.

person Zeugma    schedule 29.05.2013
comment
+1 за то, что указал мне на PyUno, это выглядит многообещающе. но что касается недавних изменений в API LibreOffice, мне нужно проверить, работает. также см. этот блог - person rypel; 29.05.2013
comment
Да, я видел это: если вы можете себе это позволить, оставайтесь на предыдущей основной версии до тех пор, пока pyuno не будет должным образом адаптирован к 4.0: они просто не готовы поддерживать pyuno + python3 на 4.0 прямо сейчас. . - person Zeugma; 29.05.2013

Форма файла ODB по умолчанию содержит базу данных HSQLDB. Вы можете извлечь эту базу данных, а затем получить к ней доступ с помощью программного обеспечения HSQLDB и любого клиента, который может подключиться к HSQLDB.

Инструкции по извлечению базы данных можно найти здесь: http://programmaremobile.blogspot.co.uk/2009/01/java-and-openoffice-base-db-through.html

person fredt    schedule 06.07.2012