extraer texto de archivos de MS Word en Python

Resuelto Badri asked hace 16 años • 15 respuestas

Para trabajar con archivos de MS Word en Python, existen extensiones de Python Win32, que se pueden usar en Windows. ¿Cómo hago lo mismo en Linux? ¿Hay alguna biblioteca?

Badri avatar Sep 24 '08 10:09 Badri
Aceptado

Utilice el módulo docx nativo de Python . A continuación se explica cómo extraer todo el texto de un documento:

document = docx.Document(filename)
docText = '\n\n'.join(
    paragraph.text for paragraph in document.paragraphs
)
print(docText)

Ver el sitio Python DocX

Consulte también Textract , que extrae tablas, etc.

El análisis de XML con expresiones regulares invoca a cthulu. ¡No lo hagas!

mikemaccana avatar Dec 30 '2009 12:12 mikemaccana

Podrías realizar una llamada de subproceso a antiword . Antiword es una utilidad de línea de comandos de Linux para volcar texto de un documento de Word. Funciona bastante bien para documentos simples (obviamente pierde formato). Está disponible a través de apt, y probablemente como RPM, o puedes compilarlo tú mismo.

John Fouhy avatar Sep 24 '2008 04:09 John Fouhy

La respuesta de Benjamin es bastante buena. Me acabo de consolidar...

import zipfile, re

docx = zipfile.ZipFile('/path/to/file/mydocument.docx')
content = docx.read('word/document.xml').decode('utf-8')
cleaned = re.sub('<(.|\n)*?>','',content)
print(cleaned)
Chad avatar Dec 28 '2009 03:12 Chad