Amazing-Python-Scripts

Форк
0
51 строка · 1.7 Кб
1
import os
2
import shutil
3
import tkinter as tk
4
from tkinter import filedialog
5

6

7
class file_sorter:
8
    def __init__(self, root):
9
        self.root = root
10
        self.root.title("File Sorter")
11
        self.root.configure(bg="#333")
12

13
        self.select_button = tk.Button(
14
            root, text="Select Directory", command=self.select_directory, bg="#555", fg="white")
15
        self.select_button.pack(pady=10)
16

17
        self.sort_button = tk.Button(
18
            root, text="Sort Files", command=self.sort_files, bg="#555", fg="white")
19
        self.sort_button.pack(pady=5)
20

21
        self.status_label = tk.Label(root, text="", bg="#333", fg="white")
22
        self.status_label.pack(pady=10)
23

24
    def select_directory(self):
25
        self.dir_path = filedialog.askdirectory()
26
        self.status_label.config(text="Selected directory: " + self.dir_path)
27

28
    def sort_files(self):
29
        if hasattr(self, "dir_path"):
30
            for filename in os.listdir(self.dir_path):
31
                if os.path.isfile(os.path.join(self.dir_path, filename)):
32
                    ext = filename.split(".")[-1]
33
                    target_dir = os.path.join(self.dir_path, ext)
34

35
                    if not os.path.exists(target_dir):
36
                        os.makedirs(target_dir)
37

38
                    source_path = os.path.join(self.dir_path, filename)
39
                    target_path = os.path.join(target_dir, filename)
40

41
                    shutil.move(source_path, target_path)
42

43
            self.status_label.config(text="Files sorted successfully.")
44
        else:
45
            self.status_label.config(text="Please select a directory first.")
46

47

48
if __name__ == "__main__":
49
    root = tk.Tk()
50
    app = file_sorter(root)
51
    root.mainloop()
52

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.