Amazing-Python-Scripts
51 строка · 1.7 Кб
1import os2import shutil3import tkinter as tk4from tkinter import filedialog5
6
7class file_sorter:8def __init__(self, root):9self.root = root10self.root.title("File Sorter")11self.root.configure(bg="#333")12
13self.select_button = tk.Button(14root, text="Select Directory", command=self.select_directory, bg="#555", fg="white")15self.select_button.pack(pady=10)16
17self.sort_button = tk.Button(18root, text="Sort Files", command=self.sort_files, bg="#555", fg="white")19self.sort_button.pack(pady=5)20
21self.status_label = tk.Label(root, text="", bg="#333", fg="white")22self.status_label.pack(pady=10)23
24def select_directory(self):25self.dir_path = filedialog.askdirectory()26self.status_label.config(text="Selected directory: " + self.dir_path)27
28def sort_files(self):29if hasattr(self, "dir_path"):30for filename in os.listdir(self.dir_path):31if os.path.isfile(os.path.join(self.dir_path, filename)):32ext = filename.split(".")[-1]33target_dir = os.path.join(self.dir_path, ext)34
35if not os.path.exists(target_dir):36os.makedirs(target_dir)37
38source_path = os.path.join(self.dir_path, filename)39target_path = os.path.join(target_dir, filename)40
41shutil.move(source_path, target_path)42
43self.status_label.config(text="Files sorted successfully.")44else:45self.status_label.config(text="Please select a directory first.")46
47
48if __name__ == "__main__":49root = tk.Tk()50app = file_sorter(root)51root.mainloop()52