Lire un document docx avec python3
Résolumamiemando Messages postés 33325 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 octobre 2024 - 16 avril 2024 à 11:06
- Python-docx
- Comment ouvrir un fichier docx ? - Guide
- Docx - Guide
- Citizen code python - Accueil - Outils
- Docx repair - Télécharger - Récupération de données
17 réponses
Modifié le 15 avril 2024 à 11:32
Modifié le 13 avril 2024 à 08:24
En bas à droite de Pycharm, tu vois l'interpréteur utilisé (dans ma capture 3.11)
Tu cliques dessus et tu peux voir tous les interpréteurs installés (dans ma capture 3.9 et 3.11) ainsi que des menus pour configurer tout ça.
Là, soit tu choisis 3.11, soit tu l'installes si ce n'est pas fait et ça sera OK au moins pour ton projet en cours.
Comme on te l'a déjà dit, Pycharm crée un environnement virtuel par projet. Toutes les dépendances du projet sont dans cet environnement (Par exemple docx si tu l'installes, ne sera accessuble que de ce projet, depuis un autre il faudre l'installer à nouveau).
Mais il y a des paramètres qui sont globaux à Pycharm, et je ne connais pas suffisamment cet IDE pour t'affirmer que l'interpréteur est global ou ne l'est pas.
Mais comme il est écrit Python 3.11 (SAGC) qui est le nom de mon projet, j'ai tendance à penser que ce n'est pas un paramètre global.
3 avril 2024 à 18:35
Tu as installé le module sur ton PC?
Modifié le 3 avril 2024 à 18:51
Je croyais que pendant mes cours cela avait été fait sur Pycharm. Donne moi le mode d'emploi STP.
avec :
pip install python-docx
cela fait une erreur !
3 avril 2024 à 19:43
Quelle erreur ?
4 avril 2024 à 12:11
Modifié le 4 avril 2024 à 17:04
import docx doc = docx.Document # doc.read("L'ANGE GABRIEL")
En fait l'erreur c'est peut être que mon document est sur le disque D, comment y faire accéder à pyhton ?
en rentrant cd dir en ligne 2 ?
J'ai ajouté mon document dans PythonProject de Pycharm via l'explorateur de fichier Windows sur le disque C, cela ne fonctionne pas mieux.
Dans mes cours le module docx est déjà installé dans pycharm, car on ne l'ajoute pas au départ de l'exercice.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionBonjour,
Peu importe où le fichier est situé, met le chemin:
import docx doc = docx.Document("C:\\Phil\\Dev\\Python\\tests\\Word_test.docx") for para in doc.paragraphs: print('Paragraphe:\n',para.text)
Modifié le 4 avril 2024 à 17:12
Modifié le 4 avril 2024 à 17:14
Je veux juste que le texte s'affiche dans Pycharm, se lis, "read", enfin si c'est possible !
Il faut rentrer le chemin vers Pycharm ?
4 avril 2024 à 18:46
import docx doc = docx.Documents("C:\Users\quent\PycharmProjects\pythonProject\L'ANGE_GABRIEL.docx")
J'ai cette erreur :
doc = docx.Document("C: \Users\quent\PycharmProjects\pythonProject\L'ANGE_GABRIEL.docx")
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
Modifié le 4 avril 2024 à 18:52
n'utilise pas l'anti-slash qui est le caractère d’échappement mais le slash / dans le chemin
puis tu devrais commencer par un fichier avec un nom simple présent dans le même répertoire que le code : doc.docx
Modifié le 4 avril 2024 à 19:09
J'ai fais cela, mais toujours des erreurs
On m'as appris à faire comme cela :
import docx
doc = docx.Document()
# doc.add_paragraph("hello word")
doc.save("hello word.docx")
paraObj1 = doc.paragraph ("deuxième paragraphe")
paraObj2 = doc.paragraph ("troisième paragraphe")
paraObj1.add_run("texte additionnel")
doc.save'"paragraphes_multiples.docx")
Modifié le 4 avril 2024 à 21:29
Bonsoir,
En programmation, quand on a des erreurs, il faut les indiquer ces erreurs, python est super pour ça, donc poste le traceback complet des erreurs, et surtout pas d'images, du simpe texte est amplement suffisant.
Tu devrais sans doute suivre un didacticiel concernant ce module, parce que là, tu as l'air de complètement patauger.
Par ex. celui-ci :
https://www.geeksforgeeks.org/python-working-with-docx-module/
(il y a d'autres tutos en bas de page concernant ce module)
Ou encore :
https://stackabuse.com/reading-and-writing-ms-word-files-in-python-via-python-docx-module/
Bonne chance.
Modifié le 4 avril 2024 à 21:18
Bonsoir goulu,
En espérant que Quentin suivra vos excellents conseils.
Pour ce qui est des interlignes, c'est un bug non corrigé depuis plus d'un an, ce me semble, qui affecte les posts en commentaire.
Il suffit de faire un shift + enter pour générer l'interligne
4 avril 2024 à 21:27
Ah d'accord, merci de l'info, je ne savais pas ;)
Bonjour,
As-tu essayé ceci :
import docx doc = docx.Documents("C:/Users/quent/PycharmProjects/pythonProject/L'ANGE_GABRIEL.docx")
5 avril 2024 à 18:55
6 avril 2024 à 07:15
Au risque de répéter ce qui t'a déjà été demandé par goulu
En programmation, quand on a des erreurs, il faut les indiquer ces erreurs, python est super pour ça, donc poste le traceback complet des erreurs, et surtout pas d'images, du simpe texte est amplement suffisant
6 avril 2024 à 11:10
File "C:\Users\quent\PycharmProjects\pythonProject\l'ange gabriel.py", line 1, in <module>
import docx
File "C:\Users\quent\PycharmProjects\pythonProject4\venv\Lib\site-packages\docx.py", line 21, in <module>
from PIL import Image
File "C:\Users\quent\PycharmProjects\pythonProject4\venv\Lib\site-packages\PIL\Image.py", line 39, in <module>
import tempfile
File "C:\Users\quent\AppData\Local\Programs\Python\Python312\Lib\tempfile.py", line 45, in <module>
from random import Random as _Random
File "C:\Users\quent\PycharmProjects\pythonProject\random.py", line 2
générer un chiffre aléatoire(1-10)
^^
SyntaxError: invalid syntax
6 avril 2024 à 18:08
J'en viens à me demander si j'ai bien le module docx d'installé sur Pycharm ? Quel chemin ou commande console pour le voir SVP ?
7 avril 2024 à 10:51
Bonjour,
Personne pour m'aider, je suis dans une impasse là ?
Petits rappels:
- On est bénévole
- Nos vies passent avant toute aide sur le forum
- Quand nous te posons des questions pour mieux cerner ton problème, tu ne réponds pas forcément rapidement, quand tu réponds...
Donc si tu veux continuer à obtenir de l'aide de notre part, un peu de patience et de respect.
A priori oui le module est installé dans l'environnement virtuel de ton projet, on voit dans la pile d'appel que l'erreur passe par
File "C:\Users\quent\PycharmProjects\pythonProject4\venv\Lib\site-packages\docx.py",
Puis si on continue à suivre la pile, ça veut utiliser le mondule Random.
Je n'ai pas vérifié et je n'ai pas le temps maintenant, mais le chemin d'appel me surprend.
N'aurais-tu pas eu la mauvaise idée d'écrire ton propre module random, avec un bug dedans?
7 avril 2024 à 11:59
Excusez moi de mon impatience à résoudre mon problème.
Je n'ai rien fait dans le module Random, à part l'utiliser lors de mes cours en exercices pour le découvrir.
Merci de vous intéresser à mon sujet, bon dimanche !
7 avril 2024 à 16:30
Sur mon PC qui dispose de Pycharm, j'ai bien 2 fichiers qui s'appellent random.py mais
- ils ne sont pas rangés dans un dossier qui ressemble à un dossier perso
- les commentaires ne sont pas en français.
Je reformule donc ma question, est-ce toi qui as écrit le fichier "C:\Users\quent\PycharmProjects\pythonProject\random.py"
7 avril 2024 à 19:34
J'ai vérifié dans mon explorateur de fichier Pycharm, c'est bien moi qui l'ai crée pour un cours qui abordait le module Random.
from random import randit générer un chiffre aléatoire(1-10)
J'ai recopié que le début du code, j'ai une erreur avec "syntax error" sur la ligne 2.
7 avril 2024 à 20:05
Alors pour une raison que j'ignore pycharm crois que le module random c'est ton fichier et pas celui d'origine.
Il faut faire en sorte que le vrai soit pris en compte, peut-être le réinstaller.
Quand à
J'ai recopié que le début du code, j'ai une erreur avec "syntax error" sur la ligne 2.
oui c'est doublement évident, d'abord parce que dans ton autre programme c'est exactement ce que te dit le message d'erreur. Et de plus un commentaire ça commence par #.
Modifié le 8 avril 2024 à 12:47
J'ai supprimé le fichier Random.py dans mon explorateur Windows (après l'avoir sauvegardé ailleurs), puis en testant mon code L'ANGE_GABRIEL.py, encore des erreurs :
File "C:\Users\quent\PycharmProjects\pythonProject\L'ANGE_GABRIEL.py", line 1, in <module>
import docx
File "C:\Users\quent\PycharmProjects\pythonProject4\venv\Lib\site-packages\docx.py", line 30, in <module>
from exceptions import PendingDeprecationWarning
ModuleNotFoundError: No module named 'exceptions'
Sinon avec quelle commande dans la console réinstaller Random ?
Modifié le 8 avril 2024 à 16:47
Bonjour,
Je n'ai pas tout lu, donc mes excuses si ce que je dis est une redite :
- Comme expliqué dans ce lien, pour des versions modernes de python, il faut installer python-docx et non docx. Cela résoudra l'erreur que tu mentionnes dans #28.
pip remove docx pip install python-docx
- Concernant #26 et le nommage de ta fonction
- Un nom de fonction python ne doit pas comporter d'espace.
- Je déconseille très fortement l'utilisation de caractères non ASCII (typiquement des caractères accentués). Donc renomme ta fonction "générer un nombre aléatoire" en "generer_un_nombre_aleatoire". Si tu voulais vraiment utiliser des caractères unicode il faudrait que ton fichier débute par l'entête adéquate. Exemple :
#!/usr/bin/env python3 # -*- coding: utf-8 -*- def f(): print("Hello world")
- Je recommande de nommer ses fonctions en anglais, ça permet de prendre de bonnes habitudes pour plus tard et on n'utilise de facto plus de caractères accentués.
- Dans ton cas particulier, la fonction que tu cherches à implémenter est probablement random.randint.
from random import randint n = randint(1, 10) # 1 <= n <= 10
- Plutôt que de faire des captures d'écran de ta pile d'appel, copie-colle la et dans son intégralité (comme tu l'as fait dans #28). Merci également de la mettre dans un section de code comme expliqué ici.
Bonne chance
Modifié le 8 avril 2024 à 16:22
File "C:\Users\quent\AppData\Local\Programs\Python\Python312\Lib\code.py", line 63, in runsource code = self.compile(source, filename, symbol) File "C:\Users\quent\AppData\Local\Programs\Python\Python312\Lib\codeop.py", line 153, in __call__ return _maybe_compile(self.compiler, source, filename, symbol) File "C:\Users\quent\AppData\Local\Programs\Python\Python312\Lib\codeop.py", line 73, in _maybe_compile return compiler(source, filename, symbol)
8 avril 2024 à 16:23
Ci-dessus résultat commande console pycharm :
pip remove docx
8 avril 2024 à 16:57
La trace me paraît incomplète. Au pire, regarde si docx est installé (avec pip list). Puis installe python-docx avec pip install python-docx.
Bonne chance
8 avril 2024 à 17:57
pip list :
File "C:\Users\quent\AppData\Local\Programs\Python\Python312\Lib\code.py", line 63, in runsource code = self.compile(source, filename, symbol) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\quent\AppData\Local\Programs\Python\Python312\Lib\codeop.py", line 153, in __call__ return _maybe_compile(self.compiler, source, filename, symbol) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\quent\AppData\Local\Programs\Python\Python312\Lib\codeop.py", line 73, in _maybe_compile return compiler(source, filename, symbol) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\quent\AppData\Local\Programs\Python\Python312\Lib\codeop.py", line 118, in __call__ codeob = compile(source, filename, symbol, self.flags, True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<input>", line 1 pip list ^^^^
8 avril 2024 à 19:00
Vu l'erreur, j'ai l'impression que tu tapes tes commandes pip dans un script python, alors qu'il faut les taper dans un terminal (par exemple, les commandes MS-DOS ou l'onglet terminal si ton IDE en propose un).
8 avril 2024 à 19:08
Peut être Pycharm bug, il faudrait peut être le desinstaller, réinstaller ? En sauvegardant mes projets ?
9 avril 2024 à 14:26
Salut,
Déjà, il faut sélectionner le Terminal dans ta barre d'outils à gauche :
Autre méthode pour installer/désinstaller un module, c'est le gestionnaire de package :
9 avril 2024 à 19:23
J'ai bien fait comme toi pour le package et :
9 avril 2024 à 20:06
J'ai ouvert avec PyCharm un projet dans lequel j'ai docx.
Avec le gestionnaire de package (comme te l'a montré @Diablo76 StatutMembre), je le vois dans la liste des composants installés
Est-ce que tu le vois ?
Je te demande ça parce que plus haut ta trace d'erreur semblait passer par ce package. Alors peut-être que ce n'était pas le bon package comme l'a suggéré @mamiemando StatutModérateur
Dans ce cas, peut-être faudrait-il le désinstaller d'abord.
A droite du gestionnaire de package, tu peux cliquer sur les 3 points
Sinon dans le terminal de Pycharm (comme te l'a aussi montré Diablo), avec pip list, tu peux aussi voir les packages installés sur ton projet.
Pour en être sûr, tu dois voir
(venv) suivi du chemin de ton projet
Et les commandes d'install t'ont déjà été données, celle de désinstall
pip unstall docx
Modifié le 10 avril 2024 à 12:41
Bonjour,
Dans les packages, j'ai ceci d'installé :
Quand j'essaie d'installé python-docx, j'ai un message d'erreur, failed :
10 avril 2024 à 12:46
Quand je fais pip list dans le terminal, j'ai :
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "C:\Users\quent\PycharmProjects\pythonProject1\venv\Scripts\pip.exe\__main__.py", line 4, in <module>
File "C:\Users\quent\PycharmProjects\pythonProject1\venv\Lib\site-packages\pip\_internal\cli\main.py", line 9, in <module>
from pip._internal.cli.autocompletion import autocomplete
File "C:\Users\quent\PycharmProjects\pythonProject1\venv\Lib\site-packages\pip\_internal\cli\autocompletion.py", line 10, in <module>
from pip._internal.cli.main_parser import create_main_parser
File "C:\Users\quent\PycharmProjects\pythonProject1\venv\Lib\site-packages\pip\_internal\cli\main_parser.py", line 8, in <module>
from pip._internal.cli import cmdoptions
File "C:\Users\quent\PycharmProjects\pythonProject1\venv\Lib\site-packages\pip\_internal\cli\cmdoptions.py", line 23, in <module>
from pip._internal.cli.parser import ConfigOptionParser
File "C:\Users\quent\PycharmProjects\pythonProject1\venv\Lib\site-packages\pip\_internal\cli\parser.py", line 12, in <module>
from pip._internal.configuration import Configuration, ConfigurationError
File "C:\Users\quent\PycharmProjects\pythonProject1\venv\Lib\site-packages\pip\_internal\configuration.py", line 20, in <module>
from pip._internal.exceptions import (
File "C:\Users\quent\PycharmProjects\pythonProject1\venv\Lib\site-packages\pip\_internal\exceptions.py", line 7, in <module>
from pip._vendor.pkg_resources import Distribution
File "C:\Users\quent\PycharmProjects\pythonProject1\venv\Lib\site-packages\pip\_vendor\pkg_resources\__init__.py", line 2164, in <module>
register_finder(pkgutil.ImpImporter, find_on_path)
^^^^^^^^^^^^^^^^^^^
AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'?
10 avril 2024 à 12:56
Ok, Effectue l'update de tes packages en cliquant sur les liens et réessaie l'install de python-docx :
Modifié le 10 avril 2024 à 15:01
Bonjour quentin.
Désolé pour toi, mais tu as une version trop récente de python XD , il va falloir tout recommencer en utilisant une version antérieure.
https://stackoverflow.com/questions/77364550/attributeerror-module-pkgutil-has-no-attribute-impimporter-did-you-mean#answer-77364602
11 avril 2024 à 20:47
Le problème semble lié à python3.12 (voir ici). Cette discussion suggère de repasser soit en python3.11, soit d'adopter cette solution.
12 avril 2024 à 18:10
Merci à Whismeril, goulu et mamiemando de vous intéresser à mon problème. J'ai désinstaller python 3.12 et installé python 3.11. Quand je fais pip install python-docx, j'ai :
(venv) PS C:\Users\quent\PycharmProjects\pythonProject> pip install python-docx
No Python at '"C:\Users\quent\AppData\Local\Programs\Python\Python312\python.exe'
(venv) PS C:\Users\quent\PycharmProjects\pythonProject>
Python est installé dans le C de app data, local, lors de l'install, au tout départ, j'ai coché "installe the path", en bas, une option, cela viendrait'il de là ?
12 avril 2024 à 18:23
Salut,
Si c'est toujours le même projet, il faut que tu précises la nouvelle version de Python (3.11) dans ses paramètres.
12 avril 2024 à 21:56
Merci à toi aussi de m'aider. En fait il faut renseigner dans Pycharm la version de python ? Ou pour chaque projet, clic droit, paramètre ?
14 avril 2024 à 12:55
Et si tu copies colle le chemin dans la zone de texte de la fenêtre d'exploration?
Modifié le 14 avril 2024 à 16:39
Oui, Ctrl/C Ctrl/V fonctionnent, je viens de tester.
Après, je ne peux pas aider plus que ça, je ne suis pas sur Windows...
Modifié le 15 avril 2024 à 11:08
J'ai réussi à mettre l'interpréteur python 311 en créant un nouveau projet. Or en tapant dans le terminal de Pycharm : pip install python-docx, j'ai ceci :
No Python at '"C:\Users\quent\AppData\Local\Programs\Python\Python312\python.exe'
La version 312 est désinstallée ! Enfin il me reste çà :
Modifié le 15 avril 2024 à 11:08
Ah j'ai réussi en passant par le package de Pycharm, j'ai installé python-docx, ENFIN !
Modifié le 15 avril 2024 à 17:28
Bonjour Mamiemando,
Merci d'avoir clos le sujet. Mais je ne l'avais pas fais car j'ai encore des questions. J'ai installé pyinstaller sur mon pc, pour exécuter des projets python depuis n'importe quels pcs non équipé de python. Cela fonctionne pour d'autres fichiers, mais pas pour l'ange_gabriel ?
En fait, dans Pycharm il s'ouvre bien avec les lignes que j'ai indiqué dans le projet, mais je voulais que tout le contenu du fichier texte s'ouvre dans la console d'excécution de Pycharm ! Puis sur un pc après l'avoir fait cheminer vers pyinstaller.
Faut-il ajouter d'autres lignes de code pour qu'il s'affiche dans Pycharm ? Sera t-il possible d'en faire un fichier .exe via pyinstaller . Merci encore pour l'aide !
16 avril 2024 à 11:06
Bonjour quentin2121 : cette question n'est pas en rapport direct avec le sujet initial, et donc il faut poser ta question dans une nouvelle discussion si tu veux plus de détails. Mais dans l'idée, soit la machine cible a un interpréteur python et les dépendances nécessaires au sujet, soit il faut transformer ton projet en exécutable "stand alone" par exemple avec pyinstaller.
Modifié le 13 avril 2024 à 12:07
Quand je clique en bas à droite, je ne vois que python 3.12, j'ai cherché le chemin du 3.11, que voici :
C:\Utilisateurs\quent\AppData\Local\Programs\Python\Python311
Je n'arrive pas à le faire rentrer dans pycharm, comme interpréteur ! Il y a une façon de l'installer ?
13 avril 2024 à 13:31
Oui, tu peux ajouter un interpréteur à ton projet existant via le menu "Add new interpreter"
Ensuite, tu sélectionnes ton projet existant et tu renseignes le chemin de python 3.11 (C:\Utilisateurs\quent\AppData\Local\Programs\Python\Python311)
14 avril 2024 à 11:14
Une fois sur le chemin de C:\Users\quent\AppData
Je ne peux aller plus loin, et cliquer sur Ok pour valider le chemin ?
Modifié le 14 avril 2024 à 12:31
En gros Pycharm ne veut pas prendre Python 311 ! Peut être parce que souvent on installe d'abord python, puis pycharm ?