在Python中使用 Tkinter 的自动文件管理器
先决条件:Tkinter
当您尝试在文件和目录池中查找特定文件时,文件组织很有帮助。检查每个文件似乎既费时又费力。如果文件数量太多并且您不知道在哪里可以准确找到它,那么文件组织就是一个救星。
本文讨论了如何使用 Tkinter 完成此操作。该模块将创建一个 GUI,使搜索文件的任务不仅快速而且交互式和简单。
使用的模块:
- Tkinter:用于创建图形用户界面
- Os :与文件夹和文件交互
- Shutil :将文件移动到特定文件夹
方法
- 导入模块
- 创建程序窗口
- 选择要组织的文件夹。此函数将弹出一个窗口,用户将在其中选择所需的文件夹。
- 创建按钮开始组织文件
- 添加反馈消息,让用户知道发生了什么
- 为要选择的文件设置标准。本文使用其扩展名组织文件。
- 创建主
- 调用函数循环到 GUI
程序 :
Python3
from tkinter import *
from tkinter import filedialog
import os
import shutil
class GUI(Tk):
def __init__(self):
super().__init__()
self.geometry('500x500')
def gettingPath(self):
self.path = filedialog.askdirectory()
return self.path
def startButton(self, path_value):
self.button_Frame = Frame(self)
self.button_Frame.pack()
self.start_Button = Button(self.button_Frame, text='Start', command=lambda: self.startOperation(
path_value)).grid(row=0, column=0)
def startOperation(self, path_value):
count = 0
os.chdir(path_value)
self.file_list = os.listdir()
no_of_files = len(self.file_list)
if len(self.file_list) == 0:
self.error_label = Label(text="Error empty folder").pack()
exit()
for file in self.file_list:
if file.endswith(".png"):
self.dir_name = "PngFiles"
self.new_path = os.path.join(path_value, self.dir_name)
self.file_list = os.listdir()
if self.dir_name not in self.file_list:
os.mkdir(self.new_path)
shutil.move(file, self.new_path)
elif file.endswith(".txt"):
self.dir_name = "TextFiles"
self.new_path = os.path.join(path_value, self.dir_name)
self.file_list = os.listdir()
if self.dir_name not in self.file_list:
os.mkdir(self.new_path)
shutil.move(file, self.new_path)
count = count+1
if(count == no_of_files):
success = Label(text="Operation Successful!").pack()
else:
error = Label(text="Failed").pack()
if __name__ == '__main__':
object = GUI()
path = object.gettingPath()
object.startButton(path)
object.mainloop()
输出: