GNU/Linux >> Linux Esercitazione >  >> Linux

estrazione di testo da file MS word in python

Usa il modulo Python docx nativo . Ecco come estrarre tutto il testo da un documento:

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

Vedi il sito Python DocX

Controlla anche Textract che estrae tabelle ecc.

L'analisi di XML con espressioni regolari richiama cthulu. Non farlo!


la risposta di Benjamin è piuttosto buona. Ho appena consolidato...

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)

Potresti effettuare una chiamata di sottoprocesso a antiword. Antiword è un'utilità della riga di comando di Linux per scaricare il testo da un documento word. Funziona abbastanza bene per documenti semplici (ovviamente perde la formattazione). È disponibile tramite apt, e probabilmente come RPM, oppure potresti compilarlo tu stesso.


Linux
  1. Come distinguere il binario dai file di testo in Linux

  2. Estrazione dei dati dalla tabella HTML

  3. Estrazione di colonne da file di testo con delimitatori diversi in Linux

  4. Escludi elenco di file da find

  5. Come copiare il testo da less

Grep Command in Linux (Trova testo nei file)

Scripting Bash:come leggere i dati dai file di testo

Trova testo nei file su Linux usando grep

Esecuzione di uno script Python da PHP

Estrazione di file msi utilizzando Linux

Estrazione di file SFX in Linux