📜  在Python中使用 Tkinter 的自动文件管理器

📅  最后修改于: 2022-05-13 01:57:05.886000             🧑  作者: Mango

在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()


输出: