基于图片名称批量创建文件夹并自动归类图片的方案咨询
图片自动归类到对应文件夹的实现方案
你已经完成批量创建文件夹的功能,接下来只需从图片名称提取前缀,将对应图片移动到目标文件夹即可,以下是两种实用实现方案:
方案1:Python脚本(灵活易扩展)
适合有基础或快速上手的场景,可打包成独立exe程序。
实现逻辑
- 读取Excel/Word中的图片名称列表
- 遍历每个图片名,按
-分割提取前缀(如ABC-image-main提取ABC) - 校验目标文件夹是否存在(兜底判断,避免报错)
- 剪切图片到对应前缀文件夹
代码示例
import os import shutil import pandas as pd # 替换为你的实际路径 source_folder = "D:/ProductImages" excel_path = "D:/ImageList.xlsx" sheet_name = "Sheet1" # 图片名称所在的工作表 # 读取Excel中的图片名称(假设名称在第一列) df = pd.read_excel(excel_path, sheet_name=sheet_name) image_names = df.iloc[:, 0].tolist() for img_name in image_names: # 提取前缀 prefix = img_name.split('-')[0] target_folder = os.path.join(source_folder, prefix) # 确保目标文件夹存在 if not os.path.exists(target_folder): os.makedirs(target_folder) # 构建文件路径 source_path = os.path.join(source_folder, img_name) target_path = os.path.join(target_folder, img_name) # 执行剪切 if os.path.exists(source_path): shutil.move(source_path, target_path) print(f"已移动:{img_name} -> {target_folder}") else: print(f"跳过:文件不存在 - {source_path}")
打包成可执行程序
- 安装打包工具:
pip install pyinstaller - 执行打包命令:
pyinstaller --onefile --windowed your_script_name.py - 生成的exe文件在
dist文件夹中,可直接运行
方案2:Windows批处理脚本(无需额外环境)
适合Windows系统下快速实现,无需安装Python。
前置准备
将Excel/Word中的图片名称导出为文本文件(ImageList.txt),每行一个图片名称。
脚本代码
@echo off setlocal enabledelayedexpansion :: 替换为你的实际路径 set "source_folder=D:\ProductImages" set "list_file=D:\ImageList.txt" for /f "delims=" %%i in (%list_file%) do ( :: 提取前缀(按'-'分割) for /f "delims=-" %%p in ("%%i") do ( set "target_folder=!source_folder!\%%p" :: 创建目标文件夹(如果不存在) if not exist "!target_folder!" mkdir "!target_folder!" :: 移动文件 if exist "!source_folder!\%%i" ( move "!source_folder!\%%i" "!target_folder!" echo 已移动:%%i -> !target_folder! ) else ( echo 跳过:文件不存在 - !source_folder!\%%i ) ) ) endlocal pause
使用方法
- 将代码保存为
SortImages.bat - 修改
source_folder和list_file的路径为你的实际路径 - 双击运行bat文件即可
注意事项
- 操作前务必备份所有图片,避免意外丢失
- 确保所有图片名称的前缀分割规则统一(均以
-作为分隔符) - 如果图片名称包含特殊字符,优先使用Python方案处理
内容的提问来源于stack exchange,提问作者Jess Murray
相关产品推荐
相关产品推荐

