一、需求
有很多图片在不同的文件夹中,将所有图片汇集起来,按照固定的数量保存到新建的文件夹中
二、代码:
import os
import shutil
import glob# 图片文件夹路径
file_path = r"E:\tu_ret"# 指定目标根目录
dst_root_dir = r"D:\Desktop\tu_300"# 获取所有图片的完整路径
img_files = []
# ** 表示递归查找子目录
for jpg_file in glob.glob(os.path.join(file_path, '**', '*.jpg'), recursive=True):print(jpg_file)img_files.append(jpg_file)# 计数器和子文件夹编号
folder_count = 1
img_per_folder = 300 # 每个文件夹内图片数量
current_folder = os.path.join(dst_root_dir, str(folder_count))# 遍历图片文件列表
for i, img_file in enumerate(img_files):print(img_file)# 如果图片数量达到300,则创建下一个文件夹if i % img_per_folder == 0:folder_count += 1current_folder = os.path.join(dst_root_dir, str(folder_count))if not os.path.exists(current_folder):os.makedirs(current_folder, exist_ok=True) # 创建新文件夹,exist_ok=True允许如果文件夹已存在则不报错# 移动图片文件到当前文件夹dst_file = os.path.join(current_folder, os.path.basename(img_file))shutil.copy2(img_file, dst_file)