Chemin d'accès dans une variable [Résolu/Fermé]

Signaler
Messages postés
27
Date d'inscription
lundi 25 mai 2015
Statut
Membre
Dernière intervention
20 juillet 2019
-
Messages postés
27
Date d'inscription
lundi 25 mai 2015
Statut
Membre
Dernière intervention
20 juillet 2019
-
Bonjour, j'ai trouvé beaucoup de problème similaire au mien, mais aucun qui soit puisse résoudre mon problème en particulier.
Alors voilà, je fais un script python dans lequel tout d'abord l'utilisateur utilise un explorateur de fichier pour stocker le chemin d'accès dans 'root.filename'.
Et j'aimerais pouvoir lire le fichier grâce à :
with open("C://chemin","r") as f:

Le problème est que si je remplace "C://chemin" par "root.filename" il ne trouve pas le chemin d'accès, et si je le remplace par root.filename, la fonction n'a pas d'attribut root.filename...
J'ai également essayé avec str(root.filename).

Quelqu'un pourrait-il m'éclairer sur la manière d'ouvrir un fichier dont le chemin d'accès est contenu dans une variable ?
Merci d'avance pour votre temps !

5 réponses

Messages postés
11710
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 août 2020
670
bonjour, peux-tu montrer ton code, en utilisant les balises de code?
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 56842 internautes nous ont dit merci ce mois-ci

Messages postés
27
Date d'inscription
lundi 25 mai 2015
Statut
Membre
Dernière intervention
20 juillet 2019

Voilà le bout de code intéressant. Le problème se situant à la partie en fin de programme. (ligne 22-25)

from tkinter import*
from tkinter import filedialog
#########################création de la fenetre#########################
root=Tk()
root.title("Verbes irréguliers")
root.geometry("400x700")
########################################################################

########################choix du fichier################################
explication_browse=Label(root, text="Choisissez l'emplacement de votre fichier contenant la\n liste de verbes")
explication_browse.place(x=15, y=20)

def browsef():
	root.filename =  filedialog.askopenfilename(initialdir = "/",title = "Choix du fichier",filetypes = (
					 ("Fichier texte","*.txt"),("Tous les fichiers","*.*")))
	fichier_choisi=Label(root, text=root.filename)
	fichier_choisi.place(x=90, y=70)

browse=Button(root, text="Parcourir", bg='grey', command=browsef)
browse.place(x=10, y=70)

filename=str(root.filename)
with open(filename,"r") as f:
	liste=f.read()
f.close()
print(liste)
########################################################################


root.mainloop()


Merci de votre aide.
Messages postés
11710
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 août 2020
670
et ceci:
filename =  filedialog.askopenfilename(initialdir = "/",title = "Choix du fichier",filetypes = (
					 ("Fichier texte","*.txt"),("Tous les fichiers","*.*")))
with open(filename,"r") as f:
Messages postés
27
Date d'inscription
lundi 25 mai 2015
Statut
Membre
Dernière intervention
20 juillet 2019

Voilà ce que j'obtiens :
AttributeError: '_tkinter.tkapp' object has no attribute 'filename'
Messages postés
27
Date d'inscription
lundi 25 mai 2015
Statut
Membre
Dernière intervention
20 juillet 2019

A force d'essayer différentes choses, j'ai trouvé une solution. Il fallait définir ma variable comme StringVar().
filename=StringVar()
filename = filedialog.askopenfilename(initialdir = "/",title = "Choix du fichier",filetypes = (("Fichier texte","*.txt"),("Tous les fichiers","*.*")))
fichier_choisi=Label(root, text=filename, font=italic)
fichier_choisi.place(x=90, y=60)
with open(filename,"r")as f:
    liste=f.read()
f.close()


Merci yg_be pour les réponses.