Начальник ИТ отдела
import os import shutil import json from tkinter import ( BOTTOM, Button, E, Frame, Label, StringVar, Tk, W, X, filedialog, mainloop, ) from pathlib import Path, PurePath def browse_button(): global folder_path filename = filedialog.askdirectory() folder_path.set(filename) def clean_button(): global folder_path os_path = Path(folder_path.get()) with open("config.json", "r", encoding="utf8") as config_file: folders = json.load(config_file) for k in folders.keys(): for f in os.listdir(os_path): print(PurePath(f).suffix, PurePath(f).suffix.lstrip(".")) if ( len(PurePath(f).suffix) > 1 and PurePath(f).suffix.lstrip(".") in folders[k] ): try: shutil.move(Path(f"{os_path}\\{f}"), Path(f"{os_path}\\{k}\\{f}")) except Exception as e: print(e.args) os.makedirs(Path(f"{os_path}\\{k}\\")) shutil.move(Path(f"{os_path}\\{f}"), Path(f"{os_path}\\{k}\\{f}")) root = Tk() root.title("Выбор каталога Загрузок") # Add a title root.minsize(400, 20) folder_path = StringVar() main_frame = Frame(root) main_frame.pack(fill=X, side=BOTTOM) path_label = Label(main_frame, textvariable=folder_path) clean_button = Button(main_frame, text="Очистить", command=clean_button) browse_button = Button(main_frame, text="Выбрать", command=browse_button) main_frame.columnconfigure(0, weight=5) main_frame.columnconfigure(1, weight=1) main_frame.columnconfigure(2, weight=1) path_label.grid(row=0, column=0, sticky=W + E) clean_button.grid(row=0, column=1, sticky=W + E) browse_button.grid(row=0, column=2, sticky=W + E) mainloop()
{ "Видео": [ "3gp", "avi", "flv", "m4v", "mkv", "mov", "mp4", "wmv", "webm" ], "Музыка": [ "mp3", "aac", "flac", "mpc", "wma", "wav" ], "Изображения": [ "raw", "jpg", "tiff", "psd", "bmp", "gif", "png", "jp2", "jpeg" ], "Документы": [ "doc", "docx", "txt", "rtf", "pdf", "fb2", "djvu", "xls", "xlsx", "ppt", "pptx", "mdb", "accdb" ], "Архивы": [ "rar", "zip", "7z", "gz", "iso" ], "Программы": [ "exe", "msi", "apk" ], "Торренты": [ "torrent" ] }