2012-07-06 12 views
6

Tôi muốn truy cập tệp ODB (được tạo bằng LibreOffice Base) bằng Python và trích xuất một bảng để sử dụng thêm. ODB chứa một số bảng, một thiết kế quan hệ và một số biểu mẫu.Cách truy cập tệp ODB bằng Python 2.7

Có thể đạt được điều này mà không cần sử dụng bất kỳ SQL nào không?

Chỉnh sửa: Vì dường như quá phức tạp khi phân tích cú pháp định dạng này, tôi sẽ xem xét sử dụng công cụ HSQLDB phù hợp.

Mô-đun python nào truy cập qua HSQL (như sqlite3 cho SQLite)?

+1

Nếu bạn không sử dụng bất kỳ hình thức SQL ODB nào thường sử dụng, bạn sẽ phải viết trình phân tích cú pháp của riêng bạn cho định dạng, điều này sẽ phức tạp hơn nhiều so với việc sử dụng lib và học được xây dựng sẵn cách viết truy vấn. – Endophage

+0

@Endophage: Tôi thấy quan điểm của bạn. [Sqlite3] (http://docs.python.org/library/sqlite3.html) có hoạt động với ODB không? – ferkulat

+0

sqlite3 là triển khai cơ sở dữ liệu của riêng nó. Tôi tin (nhưng tôi thực sự không thể nói 100%) rằng nó không có liên quan đến ODB khác hơn là cả hai cơ sở dữ liệu ... như Windows và Linux đều là hệ điều hành. Bạn sẽ cần phải tìm một lib python đặc biệt cho ODB. Kênh IRC Python là một nơi tốt để hỏi nếu không ai trả lời ở đây. – Endophage

Trả lời

4

Bạn có thể xem xét Python Uno API mà đi kèm với OpenOffice. Có một số Python examples để tương tác với API, bao gồm một với sample database

Ngoài ra còn có SO question nơi giải thích cách sử dụng uno với LibreOffice.

+0

+1 để trỏ tôi đến 'PyUno', có vẻ đầy hứa hẹn. nhưng liên quan đến [thay đổi gần đây] (https://wiki.documentfoundation.org/ReleaseNotes/4.0#API_Changes) với API của LibreOffice, tôi sẽ phải xem liệu nó có hoạt động hay không. cũng thấy [blog] này (http://standardsandfreedom.net/index.php/2013/01/24/the-meaning-of-the-4-0/) – ferkulat

+1

Vâng, tôi đã thấy rằng: nếu bạn có đủ khả năng nó, ở lại trên phiên bản chính trước đó cho đến thời gian pyuno được thích nghi thích hợp với 4.0: họ dường như không sẵn sàng hỗ trợ pyuno + python3 trên 4.0 ngay bây giờ ... – Boud