Ouvrir un fichier

Signaler
Messages postés
52
Date d'inscription
dimanche 27 octobre 2013
Statut
Membre
Dernière intervention
17 juin 2014
-
Messages postés
44
Date d'inscription
lundi 22 juillet 2013
Statut
Membre
Dernière intervention
18 mars 2016
-
bonjour,
je fait un petit script qui sert à ouvrir un fichier est voir si un mot entré par l'utilisateur existe dans ce fichier ou bien non
moi j'utilise Ubuntu et un éditeur de python gEdit, mon problème est quand j'exécute le programme il me dit fichier n'existe pas malgré que le fichier est dans un même répertoire
merci d'avance
#!/usr/bin/python

#-*- coding: utf-8
import string
import sys
import os
f = open ('dictionnaire.txt', "r")
mot = raw_input ("entré le mot :: ")
if mot in f:
print "mot juste"
f.close()

3 réponses

Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
2
Bonjour,

L'adresse du fichier que tentera d'ouvrir python dépendra de ton current working directory - os.getcwd().

Je viens d'effectuer un petit test sur ma Debian et le cwd dépend de quel point tu lances ton script.

Exemple si je suis en: /home/user et que j'utilise ./test/t.py, cwd=/home/user
Exemple si je suis en: /home/user/test et que j'utilise ./t.py, cwd=/home/user/test

Je pense que le problème doit venir de là.

Sinon, je te recommande de préférer l'utilisation de "with open() as f" où f.close() est automatiquement appelé en fin de bloc ou en cas d'exception.
Le mot-clé with est expliqué : http://fr.openclassrooms.com/informatique/cours/apprenez-a-programmer-en-python/lecture-et-ecriture-dans-un-fichier

++
Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
2
En lisant ton code plus précisément je me demande s'il pourra fonctionner tel quel.

En effet, j'aurais plutôt tendance à utiliser :
if mot in f.read():
au lieu de :
if mot in f:

En espérant que ça te débloquera ;)
Messages postés
44
Date d'inscription
lundi 22 juillet 2013
Statut
Membre
Dernière intervention
18 mars 2016

Quand tu exécutes un programme Python , le répertoire de travail courant est le dossier où l'interpréteur Python se trouve .
Donc je propose que tu changes de répertoire, après l'importation du module os, avec la fonction os.chdir(NomDuRepertoireOuSeTrouveTonFichier) avant d'ouvrir le fichier avec open.Dans le paramètre de chdir (Change Directory) , le chemin du fichier doit être au format String .
J'espère t'avoir aidé :) .

Mohamed Elhasnaoui