Member 14748411 Ответов: 2

Python-tkinter : сохраните путь к просмотренному файлу для последующего использования.


Я хочу сохранить путь к файлу просматриваемого файла в переменной и использовать его для последующих модификаций кода:
деф openafile():
файл=классов filedialog.askopenfilename(initialdir='/Home/документы; наименование='Выберите файл',типы файлов=(('все файлы','*.тхт'),('.txt файлы','*.ру')))
Я хочу использовать путь к этому файлу с функцией open() для последующего использования. Как мне это сделать?
Кроме того, я абсолютный новичок, поэтому, пожалуйста, объясните мне эту процедуру тоже. Спасибо.

Что я уже пробовал:

Я попытался использовать global, но не смог этого понять.

2 Ответов

Рейтинг:
1

Richard MacCutchan

Вам не обязательно хранить его в глобальном хранилище. Если вы используете один класс для всех действий с файлами, то вы можете сохранить его в переменной класса. Однако без более подробной информации о самом коде и о том, что вы пробовали (и почему это не удалось), трудно дать правильный ответ.


Рейтинг:
1

Member 14902740

Если я правильно понял ваш вопрос, я думаю, что вы в основном ищете сохранение вашего последнего просмотренного пути, а затем используете его в другой части кода для любого другого использования.
Если да, то надеюсь, что это поможет.
Недавно я использовал эту логику в одном из своих графических интерфейсов.
В основном эта логика помогает нам перенаправить на последний открытый или просмотренный путь при открытии в следующий раз, сохранив путь и проверив проверку в другом определении, как показано ниже:-

from tkinter import *
from tkinter import filedialog,messagebox

FotaGui = Tk()


def file_path():
        
        global filepath
        filepath = StringVar()
        #Fetch the file path of the hex file browsed.
        if(filepath == ""):
            filepath = filedialog.askopenfilename( initialdir = os.getcwd() ,
                 title = "select a file", filetypes = [("hex files", "*.hex")])
        else:
            filepath = filedialog.askopenfilename( initialdir=filepath,
                 title = "select a file", filetypes = [("hex files", "*.hex")])


def generate():
        
       #Validation of entry fields, if left empty.
        if filepath == "":
            messagebox.showinfo('Information','please browse')
        else:
            filepathlabel.config(text=filepath)

Browsebutton = Button(FotaGui,width = 15,text= "BROWSE",command = file_path)
Browsebutton.pack()
Generatebutton = Button(FotaGui,text="Generate",command = generate)
Generatebutton.pack()
filepathlabel = Label(FotaGui,text = "hex file path:",font = ('Times 10'))
filepathlabel.pack()
FotaGui.mainloop()


Я использовал глобальную переменную, чтобы использовать переменную в другом определении и вне этой области.