我正在尝试做到这一点,因此可以在此简单的gui中更改源文件和目标文件的目录。在较早的文章中,我看到可以使用tkinter.filedialop.ask目录,但是我不知道如何在代码中实现它。我应该为源目录和目标目录分别创建一个按钮吗?
import shutil
import os
import tkinter as tk
source_dir = '/Users/shane/Desktop/test1/'
target_dir = '/Users/shane/Desktop/test2/'
file_names = os.listdir(source_dir)
class Application(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.pack()
self.create_widgets()
def create_widgets(self):
self.testhi = tk.Button(self)
self.testhi["text"] = "Move!"
self.testhi["command"] = self.movefiles
self.testhi.pack(side="top")
self.quit = tk.Button(self, text="QUIT", fg="red",
command=self.master.destroy)
self.quit.pack(side="bottom")
def movefiles(self):
for file_name in file_names:
shutil.move(os.path.join(source_dir, file_name), target_dir) #for file_name in file_names: #shutil.move(os.path.join(source_dir, file_name), target_dir)
root = tk.Tk()
app = Application(master=root)
app.mainloop()
答案 0 :(得分:0)
解决此问题的最简单方法是仅实现filedialog.askdirectory(),它将替换我为源目录和目标目录放置的路径。
赞:
import shutil
import os
import tkinter as tk
source_dir = filedialog.askdirectory()
target_dir = filedialog.askdirectory()
file_names = os.listdir(source_dir)
class Application(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.pack()
self.create_widgets()
def create_widgets(self):
self.testhi = tk.Button(self)
self.testhi["text"] = "Move!"
self.testhi["command"] = self.movefiles
self.testhi.pack(side="top")
self.quit = tk.Button(self, text="QUIT", fg="red",
command=self.master.destroy)
self.quit.pack(side="bottom")
def movefiles(self):
for file_name in file_names:
shutil.move(os.path.join(source_dir, file_name), target_dir) #for file_name in file_names: #shutil.move(os.path.join(source_dir, file_name), target_dir)
root = tk.Tk()
app = Application(master=root)
app.mainloop()