import os
import shutil
from tkinter import Tk, Label, Entry, Button, filedialog, messagebox
file_types = {
'图片': ['.jpg', '.jpeg', '.png', '.gif', '.bmp'],
'文档': ['.pdf', '.doc', '.docx', '.txt', '.xls', '.xlsx'],
'视频': ['.mp4', '.avi', '.mov', '.mkv'],
'音频': ['.mp3', '.wav', '.aac'],
'压缩包': ['.zip', '.rar', '.7z']
}
def create_folders(base_path):
for folder in file_types.keys():
folder_path = os.path.join(base_path, folder)
if not os.path.exists(folder_path):
os.makedirs(folder_path)
def move_files(base_path):
for root, dirs, files in os.walk(base_path):
for file in files:
file_ext = os.path.splitext(file)[1].lower()
moved = False
for folder, extensions in file_types.items():
if file_ext in extensions:
src_path = os.path.join(root, file)
dest_path = os.path.join(base_path, folder, file)
shutil.move(src_path, dest_path)
moved = True
break
if not moved:
print(f"未识别的文件类型: {file}")
def select_directory():
directory = filedialog.askdirectory()
entry.delete(0, 'end')
entry.insert(0, directory)
def start_organizing():
base_path = entry.get()
if not os.path.isdir(base_path):
messagebox.showerror("错误", "无效的目录路径")
return
create_folders(base_path)
move_files(base_path)
messagebox.showinfo("完成", "文件整理完成!")
root = Tk()
root.title("文件整理工具")
label = Label(root, text="请选择要整理的目录路径:")
label.pack(pady=5)
entry = Entry(root, width=50)
entry.pack(pady=5)
select_button = Button(root, text="浏览", command=select_directory)
select_button.pack(pady=5)
start_button = Button(root, text="开始整理", command=start_organizing)
start_button.pack(pady=5)
root.mainloop()