Python lire un fichier erreur "d'emplacement?"
Résolu/FerméPhil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 28 nov. 2023 à 11:49
- Python lire un fichier erreur "d'emplacement?"
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Erreur 0x80070643 - Accueil - Windows
- Lire fichier epub - Guide
- Fichier rar - Guide
- Lire fichier bin - Guide
4 réponses
23 nov. 2023 à 15:47
bonjour,
as-tu essayé d'indiquer, dans le programme, le chemin complet vers le fichier?
27 nov. 2023 à 15:22
Bonjour,
Puisque le chemin vers Anglais.txt est relatif, tout dépend d'où est lancé le programme python. Vu que ton script python et ce fichier Anglais.txt sont dans le même dossier, il faut que le répertoire depuis lequel le script est exécuté soit celui dans lequel il se trouve.
Sinon, comme l'indique yg_be #1, il faut passer un chemin absolu.
Épilogue
Pour lire un fichier proprement (et notamment, ne pas oublier de le fermer)
- on utilise plutôt le context manager with comme indiqué ci-dessous
- on utilise plutôt la classe Path fournie par pathlib (classe standard en python 3) pour stocker un chemin
- comme tu es sous windows, pour éviter d'échapper les \, on utilise des r-strings (par exemple r"c:\dossier\sous-dossier\fichier" au lieu de "c:\\dossier\\sous-dossier\\fichier")
- comme on veut injecter des valeurs de variables dans nos chaînes on utilise des f-strings (les parties entre accolades sont alors évaluées comme du code python)
En appliquant toutes ces remarques, on obtient :
import sys from pathlib import Path langue = input("Langue ?") path = Path(rf"P:\gcleret\bureau\python\{langue}.txt") if path.exists(): with open(path, "r") as f: lines = f.readlines() print(lines) else: print(f"Fichier {filename} invalide", file=sys.stderr) input()
Bonne chance
Modifié le 27 nov. 2023 à 15:07
Bonjour,
Etant donné que le source n'a pas d'extension .py, on peut supposer que tu n'affiches pas les extensions connues.
Cela voudrait dire que ton fichier s'appelle Anglais.txt.txt ; supprime l'une des extensions.
Modifié le 27 nov. 2023 à 15:08
Bonjour,
Hé oui, c'est une erreur classique. Tu n'as plus qu'à renommer ton fichier Python en "apprentissage".
Et corriger le message : "Quelle matière voulez vous travailler ?" et ce sera au top
Tu pourrais aussi éviter le problème minuscule/majuscules:
langue = input("Quelle matière voulez vous travailler ? ").lower() f = open(langue + '.txt' , 'r')
Le fichier doit alors être écrit tout en minuscule (anglais.txt).
Modifié le 27 nov. 2023 à 15:50
Sous Windows, les noms de fichiers ne sont pas sensibles à la casse.
28 nov. 2023 à 11:49
Oui, c'est vrai
Donc ma remarque ne vaut que pour remplacer
if (langue == "Anglais") or (langue == "anglais"):
par une mise en minuscules de la saisie par input, puis le test sur
une chaine en minuscules