Как подсчитать слова в сложных документах (.rtf, .doc, .odt и т. Д.)? - PullRequest
4 голосов
/ 13 февраля 2010

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

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

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

Ответы [ 2 ]

3 голосов
/ 13 февраля 2010

загрузить документы в автономном режиме и вызовите функцию подсчета слов

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

Вот как вы запускаете OOo как безголовый сервис:

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

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


2 голосов
/ 13 февраля 2010

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

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

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

...