Verwenden Sie das native Python-Docx-Modul . So extrahieren Sie den gesamten Text aus einem Dokument:
document = docx.Document(filename)
docText = '\n\n'.join(
paragraph.text for paragraph in document.paragraphs
)
print(docText)
Siehe Python DocX-Site
Sehen Sie sich auch Textract an, der Tabellen usw. herauszieht.
Das Analysieren von XML mit Regexs ruft cthulu auf. Tu es nicht!
Benjamins Antwort ist ziemlich gut. Ich habe gerade konsolidiert...
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)
Sie könnten einen Subprozess-Aufruf an antiword machen. Antiword ist ein Linux-Befehlszeilendienstprogramm zum Ausgeben von Text aus einem Word-Dokument. Funktioniert ziemlich gut für einfache Dokumente (offensichtlich verliert es die Formatierung). Es ist über apt verfügbar und wahrscheinlich als RPM, oder Sie könnten es selbst kompilieren.