2009-03-26 3 views
11

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

+0

Я пошел с командной строкой решением – Tim

ответ

9

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

конвертеры для MSWord (catdoc), первенствует (xls2csv) и п.п. (catppt) можно найти (в виде исходного кода) здесь: http://vitus.wagner.pp.ru/software/catdoc/.

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

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

+0

+1 за не использование открытых форматов офисных, так же, как ОП хотел. – Droogans

5

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

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

AbiWord --to=txt 

Если вы ищете библиотеку, начать на wvWare overview page. Они также поддерживают a list of libraries and tools which read MS Office documents.

1

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

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

1

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

0

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

1

Такая же проблема здесь. Ниже мой простой скрипт для преобразования всех файлов doc в 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))) 
+1

Ха-ха ... + 1 для использования python ... для использования bash. Хорошая работа, прилипшая к запросам OP ... вроде. ': D' – Droogans

+0

@Droogans: он, он, эти многоязычные быстрые скрипты действительно ироничны. Я начал делать в bash, правила изменения имени выходного файла стали странными, тогда я просто поместил его в скрипт python. Легче использовать модуль подпроцесса, трубы и т. Д. – neves

Смежные вопросы