Преобразование словаря в python
Я работаю над python, и я хочу прочитать файл *.ods и преобразовать его в словарь python.
Ключ будет первым значением столбца, а значение будет вторым значением столбца.
Как я могу это сделать? Я использовал xlrd
, но он не читал файлы *.ods.
Ответы
Ответ 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.
Ответ 4
Отметьте py-odftools.
Ответ 5
Там есть отличная статья о Linux Journal, как читать ods в python.
Файл Ods - это zuz файл juz, содержащий внутри XML файл. Вы можете, чем разобрать xml файл, прочитать все ячейки.
http://www.linuxjournal.com/article/9347?page=0,2