All streams
Search
Write a publication
Pull to refresh
0
0
Вадим @vadimkara

Начальник ИТ отдела

Send message
Как то так
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"
	]
}

Information

Rating
Does not participate
Location
Бердянск, Запорожская обл., Украина
Date of birth
Registered
Activity