首页 > 解决方案 > 在 Tkinter 程序运行时立即复制文件

问题描述

我有一个小 GUI 程序,它应该只获得一些输入以将这些输入用于方法调用。

因此我有几个 tk.Entry 对象。现在我要执行的方法需要硬盘中的文件。我想用 ElementTree 刮掉它。(我认为该文件需要与我的 .py 文件位于同一目录中?如果不是,请告诉我如何使用其他路径中的文件)。我的想法是将该文件复制到当前文件路径中,然后只使用一个简单的调用来访问该文件。但是当我想复制这个文件时,它会在我关闭程序后被复制,这不应该发生。它应该立即复制文件,以便我可以使用它。

有没有办法刷新我的文件或者你有其他想法?

谢谢,这是我的代码:

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)


标签: filetkintercopypython-3.7instant

解决方案


推荐阅读