2009-03-26 9 views
11

¿Alguna recomendación sobre un método para convertir .doc, .ppt y .xls a texto sin formato en Linux utilizando Python? Realmente, cualquier método de conversión sería útil. Ya he analizado el uso de Open Office, pero me gustaría una solución que no requiera tener que instalar Open Office.python convertir documentos de Microsoft Office a texto sin formato en Linux

+0

Fui con una solución de línea de comandos – Tim

Respuesta

9

Me gustaría ir a la solución de línea de comandos (y luego usar el Python subprocess module para ejecutar las herramientas desde Python).

Convertidores para msword (catdoc), Excel (xls2csv) y ppt (catppt) se pueden encontrar (en forma de código fuente) aquí: http://vitus.wagner.pp.ru/software/catdoc/.

Realmente no puedo comentar sobre la utilidad de catppt, pero catdoc y xls2csv funcionan muy bien!

Pero asegúrese de buscar primero en los repositorios de distribuciones ... En ubuntu, por ejemplo, catdoc es solo un rápido apto para escaparse.

+0

1 para no usar formatos de oficina abierta, al igual que el PO quería. – Droogans

5

La herramienta habitual para convertir documentos de Microsoft Office a HTML u otros formatos fue mswordview, que desde entonces se ha renombrado como vwWare.

Si usted está buscando una herramienta de línea de comandos, que en realidad recomiendan el uso de AbiWord para realizar la conversión:

AbiWord --to=txt 

Si usted está buscando una biblioteca, se inicia en el wvWare overview page. También mantienen a list of libraries and tools which read MS Office documents.

1

Para tratar con las hojas de cálculo de Excel xlwt es bueno. Pero no ayudará con los archivos .doc y .ppt.

(Es posible que también han oído hablar de PyExcelerator. Xlwt es un tenedor de esto y mantiene mejor, así que creo que estaría mejor con xlwt.)

1

En la línea de comandos, o antiwordwv trabajo muy bien para archivos .doc. (No es una solución de Python, pero son fáciles de instalar y rápidas.)

0

He tenido cierto éxito al usar XSLT para procesar los archivos de oficina basados ​​en XML en algo utilizable en el pasado. No es necesariamente una solución basada en Python, pero hace el trabajo.

1

Mismo problema aquí. A continuación se muestra mi script simple para convertir todos los archivos doc en dir 'docs /' a dir 'txts /' usando catdoc. Esperamos que ayude a alguien:

#!/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

Haha ... + 1 por usar Python ... para usar bash. Buen trabajo seguir con las solicitudes de OP ... más o menos. ': D' – Droogans

+0

@Droogans: él, él, estos guiones rápidos en varios idiomas son realmente irónicos. Empecé a hacer bash, las reglas para cambiar el nombre del archivo de salida se volvieron extrañas, luego simplemente lo puse dentro de un script de Python. Es más fácil que usar un módulo de subproceso, tuberías, etc. – neves

Cuestiones relacionadas