Python конвертировать документы Microsoft Office в обычный текст на Linux - PullRequest
11 голосов
/ 26 марта 2009

Какие-либо рекомендации по методу для преобразования .doc, .ppt и .xls в обычный текст на Linux с использованием Python? Действительно любой метод конвертации был бы полезен. Я уже рассматривал использование Open Office, но мне бы хотелось решение, которое не требует установки Open Office.

Ответы [ 7 ]

11 голосов
/ 27 марта 2009

Я бы выбрал решение командной строки (а затем использовал модуль подпроцесса Python для запуска инструментов из Python).

Конвертеры для msword ( catdoc ), excel ( xls2csv ) и ppt ( catppt ) можно найти (в исходном формате) здесь: http://vitus.wagner.pp.ru/software/catdoc/.

Не могу прокомментировать полезность catppt, но catdoc и xls2csv прекрасно работают!

Но обязательно сначала поищите в ваших репозиториях дистрибутивов ... Например, в Ubuntu catdoc - это всего лишь один быстрый способ уйти.

9 голосов
/ 26 марта 2009

Вы можете получить доступ к OpenOffice через Python API .

Попробуйте использовать это как основу: http://wiki.services.openoffice.org/wiki/Odt2txt.py

5 голосов
/ 26 марта 2009

Обычным инструментом для преобразования документов Microsoft Office в HTML или другие форматы был mswordview, который с тех пор был переименован в vwWare .

Если вам нужен инструмент командной строки, они фактически рекомендуют использовать AbiWord для выполнения преобразования:

AbiWord --to=txt

Если вы ищете библиотеку, откройте страницу обзора wvWare . Они также поддерживают список библиотек и инструментов, которые читают документы MS Office .

2 голосов
/ 12 февраля 2012

Та же проблема здесь. Ниже приведен мой простой скрипт для преобразования всех файлов документов в dir 'docs /' в dir 'txts /' с использованием catdoc. Надеюсь, это кому-нибудь поможет:

#!/usr/bin/env python 
# -*- coding: utf-8 -*-

import glob, re, os
f = glob.glob('docs/*.doc') + glob.glob('docs/*.DOC')

outDir = 'txts'
if not os.path.exists(outDir):
    os.makedirs(outDir)
for i in f:
    os.system("catdoc -w '%s' > '%s'" %
              (i, outDir + '/' + re.sub(r'.*/([^.]+)\.doc', r'\1.txt', i,
                                   flags=re.IGNORECASE)))
2 голосов
/ 26 марта 2009

В командной строке antiword или wv очень хорошо работают для файлов .doc. (Не решение Python, но их легко установить и быстро.)

1 голос
/ 26 марта 2009

Для работы с таблицами Excel xlwt хорошо. Но это не поможет с файлами .doc и .ppt.

(Возможно, вы также слышали о PyExcelerator. Xlwt - это ответвление, и его лучше поддерживать, поэтому я думаю, что вам будет лучше с xlwt.)

0 голосов
/ 26 марта 2009

У меня был некоторый успех в использовании XSLT для обработки офисных файлов на основе XML в нечто пригодное для использования в прошлом. Это не обязательно решение на основе Python, но оно выполняет свою работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...