2012-07-06 20 views
6

Quiero acceder a un archivo ODB (hecho con LibreOffice Base) en Python y extraer una tabla para su uso posterior. El ODB contiene varias tablas, un diseño de relación y varias formas.Cómo acceder a los archivos ODB en Python 2.7

¿Es posible lograr esto sin usar ningún SQL?

Editar: Dado que parece demasiado complicado analizar este formato por mi cuenta, consideraré el uso de un motor HSQLDB adecuado.

¿A qué módulo de python accede a través de HSQL (como sqlite3 para SQLite)?

+1

Si no usa la forma de SQL que ODB normalmente usaría, tendrá que escribir su propio analizador para el formato, que será mucho más complicado que usar una biblioteca pre compilada y aprender cómo escribir consultas. – Endophage

+0

@Endophage: veo tu punto. ¿Funcionaría [sqlite3] (http://docs.python.org/library/sqlite3.html) con ODB? – ferkulat

+0

sqlite3 es su propia implementación de base de datos. Creo (pero realmente no puedo decir el 100%) que no tiene ninguna relación con ODB aparte de que ambas son bases de datos ... como Windows y Linux son ambos sistemas operativos. Necesitarás encontrar una lib de Python específicamente para ODB. El canal IRC de Python es un buen lugar para preguntar si nadie responde aquí. – Endophage

Respuesta

4

Se puede considerar Python Uno API que viene con OpenOffice. Hay varios Python examples para interactuar con la API, incluyendo uno con el sample database

También existe este SO question donde se explica cómo utilizar uno con LibreOffice.

+0

+1 para señalarme a 'PyUno', se ve prometedor. pero con respecto a los [cambios recientes] (https://wiki.documentfoundation.org/ReleaseNotes/4.0#API_Changes) a la API de LibreOffice, tendré que ver si aún funciona. también vea esto [blog] (http://standardsandfreedom.net/index.php/2013/01/24/the-meaning-of-the-4-0/) – ferkulat

+1

Sí, he visto eso: si puede pagar permanezca en la versión principal anterior hasta el momento en que pyuno se adapta adecuadamente a 4.0: simplemente no parecen estar listos para admitir pyuno + python3 en 4.0 en este momento ... – Boud