У меня есть небольшая GUI Программа, которая должна получить только некоторые входные данные, чтобы использовать эти входные данные для вызова метода.
Поэтому у меня есть несколько объектов tk.Entry. Теперь моему методу, который я хочу выполнить, нужен файл с моего жесткого диска. Я хочу очистить это с ElementTree. (Я думаю, что файл должен находиться в том же каталоге, что и мой файл .py? Если нет, скажите, пожалуйста, как использовать файл по другому пути). Моя идея заключалась в том, чтобы скопировать этот файл в текущий путь к файлу, а затем использовать только простой вызов, чтобы получить доступ к этому файлу. Но когда я хочу скопировать этот файл, он копируется после закрытия программы, и это не должно произойти. Он должен немедленно скопировать файл, чтобы я мог работать с ним.
Есть ли способ обновить sh мои файлы или у вас есть другая идея?
Спасибо, и вот мой код :
from Modules import copy_file
import tkinter as tk
class MainApplication(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
for Frame in (StartPage, SuccessPage):
page_name = Frame.__name__
frame = Frame(parent=container, controller=self)
self.frames[page_name] = frame
frame.grid(row=0, column=0, sticky="nsew")
self.show_frame("StartPage")
# method to show frames
def show_frame(self, page_name):
frame = self.frames[page_name] #getting our frame from our frames list
frame.tkraise() #raise it up to the front
class StartPage(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.controller = controller
# Open File Button
self.button_open_file = ttk.Button(self, text = "Open File", command = self.get_file_directory).grid(row=5, column=0, sticky="WE")
def get_file_directory(self):
filename = filedialog.askopenfilename(initialdir = "/",title = "Select file",filetypes = (("all files","*.*"),("jpeg files","*.jpg")))
copy_file(filename)
class SuccessPage(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
self.controller = controller
# Open File Button
self.label = tk.Label(self, text = "Lab").grid(row=0 column=0, sticky="WE")
if __name__ == '__main__':
application = MainApplication().mainloop()
----------------------------------------------------------------------------------------------
Modules.py
from shutil import copy
def copy_file(src):
destination_path = os.path.dirname(os.path.realpath(__file__))
copy(src, destination_path)