Chemin d'accès dans une variable

Résolu
Redtrix95 Messages postés 27 Date d'inscription   Statut Membre Dernière intervention   -  
Redtrix95 Messages postés 27 Date d'inscription   Statut Membre Dernière intervention   -
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 !
A voir également:

5 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, peux-tu montrer ton code, en utilisant les balises de code?
1
Redtrix95 Messages postés 27 Date d'inscription   Statut Membre Dernière intervention  
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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