Как подсчитать слова в сложных документах (.rtf, .doc, .odt и т. д.)?

StackOverflow https://stackoverflow.com/questions/2256881

Вопрос

Я пытаюсь написать функцию Python, которая, учитывая путь к файлу документа, возвращает количество слов в этом документе.Это довольно легко сделать с файлами .txt, и существуют инструменты, которые позволяют мне одновременно взломать поддержку нескольких более сложных форматов документов, но мне нужно действительно комплексное решение.

Глядя на интерфейс сценариев py-uno OpenOffice.org и список поддерживаемых форматов, кажется идеальным загрузить документы в безголовый OOo и вызвать его функцию подсчета слов.Однако я не могу найти никаких руководств или примеров кода по py-uno, выходящих за рамки базовой генерации документов, и даже найденные мной фрагменты кода устарели на полдесятилетия и больше не работают.

Независимо от того, используя OOo и Uno или нет, как я могу получить достоверное количество слов в документах различных форматов?

Это было полезно?

Решение

загрузить документы в безголовый OOo и позвони ему функция подсчета слов

PyODКонвертер это недавний (11-2009 г.) скрипт, использующий OOo для преобразования файлов нескольких типов.Глядя на скрипт, можно увидеть, что он имеет базовую загрузку всех поддерживаемых OOo документов.

Вот как вы запускаете OOo как headless-сервис:

soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard

Тогда вам просто нужно написать небольшой загрузчик, который вызывает OOo из командной строки, запускает ваш скрипт, а затем закрывает OOo.


Другие советы

Возможно, это не ваш вариант, но в этом случае вы можете загрузить документы в Google Docs, а затем экспортировать их в формат .txt.Google обычно очень хорошо справляется с конверсией.

Вы можете найти соответствующие API здесь: http://code.google.com/intl/pl/apis/documents/docs/1.0/developers_guide_python.html

Взгляните на разделы входа, загрузки и экспорта.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top