Ya no tienes que indagar más por todo internet ya que has llegado al sitio correcto, tenemos la solución que deseas y sin problemas.
Solución:
Utilizar el módulo docx nativo de Python. Aquí se explica cómo extraer todo el texto de un documento:
document = docx.Document(filename)
docText = 'nn'.join(
paragraph.text for paragraph in document.paragraphs
)
print(docText)
Ver el sitio Python DocX
También echa un vistazo a Textract que saca tablas, etc.
El análisis de XML con expresiones regulares invoca a cthulu. ¡No lo hagas!
Podría hacer una llamada de subproceso a antiword. Antiword es una utilidad de línea de comandos de Linux para descargar 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 puede compilarlo usted mismo.
La respuesta de benjamin es bastante buena. 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)