Comment puis-je extraire des données à partir d'un doc/docx a l'aide de Python
Je sais qu'il y a des questions similaires, mais je ne pouvais pas trouver quelque chose qui pourrait répondre à mes prières. Ce dont j'ai besoin est un moyen d'accéder à certaines données à partir de fichiers MS-Word et l'enregistrer dans un fichier XML.
À lire sur python-docx n'a pas aidé, car il ne semble permettre d'écrire dans des documents word, plutôt que de le lire.
Pour présenter ma tâche exactement (ou comment j'ai choisi pour mon approche de la tâche): je voudrais de recherche pour un mot clé ou une phrase dans le document (le document contient des tableaux) et de l'extrait de texte données de la table où le mot-clé/phrase.
Quelqu'un a des idées?
- J'ai eu à faire quelque chose de similaire avec xls/xlsx fichiers, mais il a été très facile car il est le openpyxl de la bibliothèque, qui permet de faire pas mal de choses avec des feuilles de calcul Excel. Mais il semble y avoir moins de support pour le travail avec doc/docx fichiers en Python.
Vous devez vous connecter pour publier un commentaire.
Les docx est un fichier zip contenant un fichier XML du document. Vous pouvez ouvrir la fermeture à glissière, de lire le document et analyser des données à l'aide de ElementTree.
L'avantage de cette technique est que vous n'avez pas besoin d'un python bibliothèques installé.
Voir mon stackoverflow réponse à Comment lire le contenu d'un Tableau dans le fichier MS-Word à l'Aide de Python? pour plus de détails et de références.
À rechercher dans un document avec python-docx
Vous avez également une fonction permettant d'obtenir le texte d'un document:
https://github.com/mikemaccana/python-docx/blob/master/docx.py#L910
À l'aide de https://github.com/mikemaccana/python-docx
Il semble que pywin32 fait le tour. Vous pouvez parcourir toutes les tables dans un document, et à travers toutes les cellules à l'intérieur d'un tableau. C'est un peu difficile à obtenir les données (les 2 derniers caractères de chaque entrée doivent être omis), mais sinon, c'est à dix minutes de code.
Si quelqu'un a besoin de plus de détails, veuillez l'indiquer dans les commentaires.