GNU/Linux >> Tutoriels Linux >  >> Linux

extraire du texte de fichiers MS word en python

Utilisez le module Python docx natif . Voici comment extraire tout le texte d'un document :

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

Voir le site Python DocX

Découvrez également Textract qui extrait les tableaux, etc.

L'analyse XML avec des regex invoque cthulu. Ne le faites pas !


La réponse de benjamin est plutôt bonne. Je viens de consolider...

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)

Vous pouvez faire un appel de sous-processus à antiword. Antiword est un utilitaire de ligne de commande Linux pour vider le texte d'un document Word. Fonctionne plutôt bien pour les documents simples (évidemment, il perd le formatage). Il est disponible via apt, et probablement en tant que RPM, ou vous pouvez le compiler vous-même.


Linux
  1. Comment télécharger des fichiers à partir du serveur SFTP à l'aide d'un script python

  2. Modifier un courrier entrant de Text/plain à Text/html ?

  3. Comment mettre à jour Python de 3.4.3 à 3.5 ??

  4. Importation du module Python depuis Bash

  5. Désinstaller python construit à partir de la source ?

Commande Grep sous Linux (Rechercher du texte dans des fichiers)

Script bash :comment lire des données à partir de fichiers texte

Rechercher du texte dans des fichiers sous Linux à l'aide de grep

Comment empêcher un processus d'écrire des fichiers

Extraction de fichiers SFX sous Linux

Fichiers spécifiques à Linux (mv ou cp) à partir d'une liste de fichiers texte ?