You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python 3.5:如何根据文件名将图片移动到对应文件夹

按文件名分类移动图片的解决方案

嘿,我来帮你搞定按文件名分类移动图片的问题!从你给出的示例来看,核心逻辑是提取文件名里下划线后的数字标识(比如1600_01.jpg里的01),然后把对应文件归类到folder X文件夹中。下面我给你补全实现逻辑,分步骤说明:

核心思路

  • 遍历原始文件夹中的所有图片文件
  • 从每个文件名中提取分类编号(下划线后的数字部分)
  • 根据编号创建对应的目标文件夹(不存在则自动创建)
  • 将图片移动到匹配的目标文件夹

代码实现(Python)

我用Python的os和shutil模块来实现,这两个模块是处理文件系统的常用工具,代码简洁易懂:

import os
import shutil
import re  # 用正则表达式更鲁棒,可选

# 替换成你的图片文件夹路径
source_directory = "/your/image/folder/path"

# 遍历文件夹内所有文件
for file_name in os.listdir(source_directory):
    # 只处理图片文件,可根据需要添加格式(比如.png、.jpeg)
    if file_name.lower().endswith((".jpg", ".jpeg", ".png")):
        # 方法1:用字符串拆分提取分类编号(适合固定格式的文件名)
        # category_id = file_name.split("_")[1].split(".")[0]
        
        # 方法2:用正则表达式提取(更灵活,适配文件名格式小变化)
        match_result = re.search(r'_(\d+)\.', file_name)
        if not match_result:
            print(f"跳过不符合格式的文件:{file_name}")
            continue
        category_id = match_result.group(1)
        
        # 生成目标文件夹路径,这里把编号转成整数去掉前导零(比如01→1),保留前导零的话直接用category_id即可
        target_folder = os.path.join(source_directory, f"folder {int(category_id)}")
        
        # 如果目标文件夹不存在,创建它(递归创建多级目录)
        if not os.path.exists(target_folder):
            os.makedirs(target_folder)
        
        # 拼接源文件和目标文件的完整路径
        source_path = os.path.join(source_directory, file_name)
        target_path = os.path.join(target_folder, file_name)
        
        # 移动文件
        shutil.move(source_path, target_path)
        print(f"已完成移动:{file_name} → {target_folder}")

关键细节说明

  • 文件名提取逻辑:
    • 字符串拆分法适合文件名格式完全固定的场景(比如都是数字_数字.后缀)
    • 正则表达式法更灵活,即使文件名里有多个下划线,也能精准提取.前的数字编号
  • 文件夹创建:os.makedirs会自动创建不存在的目录,不用担心报错
  • 文件移动:shutil.move既可以移动文件,也能处理跨磁盘移动的情况(如果需要)

注意事项

  • 操作前务必备份图片文件!可以先拿少量文件测试代码逻辑,避免误操作
  • 如果目标文件夹需要建在其他位置,修改target_folder的路径即可,不用和源文件夹同目录
  • 代码里的.lower()是为了兼容大小写后缀(比如.JPG)

内容的提问来源于stack exchange,提问作者ZenB883

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:31:06