Подтвердить что ты не робот

Преобразование словаря в python

Я работаю над python, и я хочу прочитать файл *.ods и преобразовать его в словарь python.

Ключ будет первым значением столбца, а значение будет вторым значением столбца.

Как я могу это сделать? Я использовал xlrd, но он не читал файлы *.ods.

4b9b3361

Ответ 1

Некоторые доступные опции:

  • pyexcel-ods: "Библиотека обертки для чтения, управления и записи данных в формате ods". Может устанавливаться через: pip install pyexcel-ods. Я лично рекомендую этот пакет, поскольку я его использовал, и он активно поддерживается.

  • py-odftools: "... набор инструментов для анализа, преобразования и создания файлов в стандартном формате ISO OpenDocument". Этот проект не обновлялся с конца 2007 года. Он выглядит заброшенным.

  • ezodf: "Пакет Python для создания/управления файлами OpenDocumentFormat". Устанавливается через pip install ezodf. См. Оговорку в комментариях ниже о серьезной проблеме с этим пакетом.

Ответ 2

Хотя вы можете попросить своих пользователей "Файл" > "Сохранить как" (как вы, вероятно, знаете), это может быть не полезно в вашей ситуации.

Возможно, проще использовать службу libre/openoffice. Он может быть запущен без проблем на сервере без необходимости установки или запуска X11, и это даст вам чистое собственное преобразование.

libreoffice --without-x --convert-to csv  filename.ods

Для получения дополнительной информации проверьте libreoffice --help (или openoffice --help). Это также можно обернуть в os.system(), subprocess. *() И т.д. (Примечание: используйте -convert-to в Windows.) Также обратите внимание: вы уже не можете запускать какие-либо экземпляры офиса Libre/Open/Star, включая быстрый запуск.

Обновление: предыдущие версии LibreOffice используются --headless вместо --without-x.

Ответ 3

Вы можете сначала преобразовать .ODS в csv? Тогда синтаксический анализ CSV с использованием Python довольно прост, используя модуль csv.

Ответ 5

Там есть отличная статья о Linux Journal, как читать ods в python. Файл Ods - это zuz файл juz, содержащий внутри XML файл. Вы можете, чем разобрать xml файл, прочитать все ячейки.

http://www.linuxjournal.com/article/9347?page=0,2