不废话先上码(写的不好不要喷哈,纯属个人笔记)
import os
import shutil
from collections import defaultdict
# 数据集目录
dataset_dir = 'D:/浏览器/数据集分类/competition_datasets'
# 创建用于存放分类
output_dir = 'D:/浏览器/数据集分类'
os.makedirs(output_dir, exist_ok=True)
file_dict = defaultdict(list)
# 遍历数据集中的每个文件
for filename in os.listdir(dataset_dir):
if filename.endswith('.jpg'): # 假设你只处理 jpg 格式的图片
# 解析文件名
name1_parts,name2_parts,name3_parts = filename.split('_')
if len(name1_parts+name2_parts) >= 2:
second_name = (name1_parts+name2_parts)
file_dict[second_name].append(filename)
# 将具有相同第二个名字的文件移动到对应的文件夹中
for second_name, filenames in file_dict.items():
target_dir = os.path.join(output_dir, second_name)
os.makedirs(target_dir, exist_ok=True)
for filename in filenames:
source_path = os.path.join(dataset_dir, filename)
target_path = os.path.join(target_dir, filename)
shutil.move(source_path, target_path)