GNU/Linux >> Znalost Linux >  >> Linux

extrahování textu ze souborů MS Word v pythonu

Použijte nativní modul Python docx . Zde je návod, jak extrahovat veškerý text z dokumentu:

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

Viz web Python DocX

Podívejte se také na Textract, který vytahuje tabulky atd.

Analýza XML pomocí regulárních výrazů vyvolá cthulu. Nedělejte to!


benjaminova odpověď je docela dobrá. Právě jsem zkonsolidoval...

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)

Můžete provést volání podprocesu antiword. Antiword je linuxový nástroj příkazového řádku pro výpis textu z word doc. Funguje docela dobře pro jednoduché dokumenty (samozřejmě ztrácí formátování). Je k dispozici prostřednictvím apt a pravděpodobně jako RPM, nebo jej můžete zkompilovat sami.


Linux
  1. Jak stahovat soubory ze serveru SFTP pomocí skriptu python

  2. Upravit příchozí poštu z textu/prostého na text/html?

  3. Jak aktualizovat Python z 3.4.3 na 3.5?

  1. Jak rozeznat binární soubory od textových souborů v linuxu

  2. Extrahování sloupců z textového souboru s různými oddělovači v Linuxu

  3. Jak kopírovat text z méně

  1. Upgradujte Python z 2.6 na 2.7 na Centos 6.5

  2. Jak zabránit procesu v zápisu souborů

  3. Soubory specifické pro Linux (mv nebo cp) z textového seznamu souborů?