deff1():import os
from collections import defaultdict
list_a =[]
name_file = defaultdict(list)for p in os.listdir('图片'):
name = p.split('_')[0]
list_a.append((name, p))for k, v in list_a:
name_file[k].append(v)for k, v in name_file.items():
os.mkdir(k)for i in v:
os.rename('图片/'+ i, k +'/'+ i)
f1()
GUI版
# -*- coding: UTF-8 -*-'''
@Project :测试
@File :test.py
@IDE :PyCharm
@Author :一晌小贪欢(278865463@qq.com)
@Date :2024/9/3 下午9:27
'''import os
from tkinter import Tk, filedialog, Label, Button, simpledialog
from collections import defaultdict
defselect_folder():""" 弹出对话框让用户选择文件夹 """return filedialog.askdirectory(title="选择图片所在的文件夹")deforganize_images(folder):""" 组织文件夹中的图片 """
list_a =[]
name_file = defaultdict(list)for p in os.listdir(folder):if os.path.isfile(os.path.join(folder, p))and p.lower().endswith(('.png','.jpg','.jpeg','.gif','.bmp')):
name = p.split('_')[0]
list_a.append((name, p))for k, v in list_a:
name_file[k].append(v)for k, v in name_file.items():
new_folder = os.path.join(folder, k)
os.mkdir(new_folder)for i in v:
os.rename(os.path.join(folder, i), os.path.join(new_folder, i))
simpledialog.messagebox.showinfo("完成","图片分类完成!")defmain():
root = Tk()
root.withdraw()# 隐藏主窗口
folder_path = select_folder()if folder_path:
organize_images(folder_path)
root.destroy()if __name__ =="__main__":
main()