extraer texto de archivos de MS Word en Python
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?
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!
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.
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)