Chemin d'accès dans une variable

Résolu
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

  1. 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
    1. Contributeur
      et ceci:
      filename =  filedialog.askopenfilename(initialdir = "/",title = "Choix du fichier",filetypes = (
      					 ("Fichier texte","*.txt"),("Tous les fichiers","*.*")))
      with open(filename,"r") as f:
      0
      1. Voilà ce que j'obtiens :
        AttributeError: '_tkinter.tkapp' object has no attribute 'filename'
        0
        1. 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