Страницы

Поиск по вопросам

среда, 13 марта 2019 г.

python3. Как открыть(получить данные) офисные документы (doc,odt, etc…)

Подскажите, как в python3 открыть и получить данные из офисных файлов, таких как odt, doc, docx, rtf. Хотя бы odt.
То что odt и docx это по сути архивы в курсе, можно их по идее распаковать, и посмотреть на файл content.xml (если не ошибаюсь), но может есть более современные или удобные способы.
Все что нашел, это для создания таблиц ods.
Нашел модули uno, pyoo и везде описано как создать таблицы, а как получить данные из офисных документов не нашел.
Задача пробежаться по всем существующим в каталоге(подкаталогах) файлах, найти или проанализировать нужное и вывести результат в отдельный файл.
Сейчас подобное частично реализовано на bash'e, хочу переписать все на python3.
Подскажите или покажите как искать.


Ответ

Оформлю как ответ, чтоб в комментариях не рыскать, если tutankhamun не против, если против, то в свой ответ добавьте и я свой удалю.
И так, вопрос получилось решить с помощью модуля ezodf ( не много документации его ). При установке будьте внимательны, если у вас и 2 и 3 версии python, для третьей я ставил так python3 setup.py install
Небольшой пример кода, для наглядности
import ezodf odt = ezodf.opendoc('/home/user/python/text.odt') list=[] # Запускаем цикл for и перебираем все что нашли в файле) for i in odt.body: if i.text == None: print('no') else: list.extend(re.findall(r"[\w']+", i.text.lower()))
Поясню, использовал i.text заместо i.plaintext(), для ловли нескольких строк со значением None (видимо какие то служебные данные, не разбирался), просто plaintext() добавляет пустые элементы в список и мне на тот момент показалось,Что через text будет быстрее, но утром могу переосмыслить)
а тут list.extend(re.findall(r"[\w']+", i.text.lower())) - с существующему списку list присоединяю или даже так, этим расширяя существующий список list. Выбираю все слова регулярным выражением (каждое слово из документа в список), применяю к ним нижний регистр и все.
так это только кусок, потому может смотреться не очень, и многое что можно добавить, но по крайней мере теперь понятно как читать документы.
Спасибо tutankhamun за подсказки.

Комментариев нет:

Отправить комментарий