GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Extrahieren von Text aus MS-Word-Dateien in Python

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.


Linux
  1. So laden Sie Dateien vom SFTP-Server mit Python-Skript herunter

  2. Wie aktualisiere ich Python von 3.4.3 auf 3.5?

  3. Importieren des Python-Moduls aus Bash

  4. Python deinstallieren, das aus der Quelle erstellt wurde?

  5. Extrahieren von Daten aus einer HTML-Tabelle

Grep-Befehl in Linux (Text in Dateien suchen)

Bash-Scripting:So lesen Sie Daten aus Textdateien

Finden Sie Text in Dateien unter Linux mit grep

Extrahieren von Spalten aus einer Textdatei mit unterschiedlichen Trennzeichen in Linux

MSI-Dateien mit Linux extrahieren

Extrahieren von SFX-Dateien unter Linux