Chemin d'accès dans une variable

Résolu/Fermé
Redtrix95 Messages postés 27 Date d'inscription lundi 25 mai 2015 Statut Membre Dernière intervention 20 juillet 2019 - 19 juil. 2019 à 16:04
Redtrix95 Messages postés 27 Date d'inscription lundi 25 mai 2015 Statut Membre Dernière intervention 20 juillet 2019 - 20 juil. 2019 à 13:35
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

yg_be Messages postés 22723 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
19 juil. 2019 à 17:56
bonjour, peux-tu montrer ton code, en utilisant les balises de code?
1
Redtrix95 Messages postés 27 Date d'inscription lundi 25 mai 2015 Statut Membre Dernière intervention 20 juillet 2019
19 juil. 2019 à 18:14
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.
0
yg_be Messages postés 22723 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
19 juil. 2019 à 18:24
et ceci:
filename =  filedialog.askopenfilename(initialdir = "/",title = "Choix du fichier",filetypes = (
					 ("Fichier texte","*.txt"),("Tous les fichiers","*.*")))
with open(filename,"r") as f:
0
Redtrix95 Messages postés 27 Date d'inscription lundi 25 mai 2015 Statut Membre Dernière intervention 20 juillet 2019
19 juil. 2019 à 18:42
Voilà ce que j'obtiens :
AttributeError: '_tkinter.tkapp' object has no attribute 'filename'
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Redtrix95 Messages postés 27 Date d'inscription lundi 25 mai 2015 Statut Membre Dernière intervention 20 juillet 2019
20 juil. 2019 à 13:35
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.
0