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

使用Python基于Dataframe按Id创建文件夹并归类图片

实现按Id分类整理图片的Python方案

没问题,这事儿很容易搞定!我给你写一段实用的代码,帮你自动按Id创建文件夹并归类图片。先理清楚逻辑:我们先把Dataframe按Id分组,然后为每个Id创建对应的文件夹,最后把同组的图片移动过去。

完整代码示例

import pandas as pd
import os
import shutil

# 1. 定义关键路径
# 目标根文件夹(要创建子文件夹的地方)
root_folder = 'F:/Images/'
# 原始图片所在的路径(假设你的图片都存在这里,记得改成你实际的路径)
source_image_path = './'  # 比如如果图片在当前目录就用这个,或者改成'F:/OriginalImages/'之类的

# 2. 模拟你的Dataframe(如果已经有现成的df,直接用自己的就行)
data = {
    'Image': ['00022e1a.jpg', '000466c4.jpg', '00087b01.jpg', '001296d5.jpg', '0014cfdf.jpg', '0025e8c2.jpg', '0026a8ab.jpg'],
    'Id': ['w_e', 'w_1', 'w_e', 'w_1', 'w_2', 'w_3', 'w_1']
}
df = pd.DataFrame(data)

# 3. 按Id分组处理
for id_name, group in df.groupby('Id'):
    # 创建对应Id的文件夹,不存在则创建
    target_folder = os.path.join(root_folder, id_name)
    if not os.path.exists(target_folder):
        os.makedirs(target_folder)
        print(f"已创建文件夹: {target_folder}")
    
    # 遍历组内的每张图片,移动到目标文件夹
    for image_name in group['Image']:
        source_file = os.path.join(source_image_path, image_name)
        target_file = os.path.join(target_folder, image_name)
        
        # 检查原始文件是否存在,避免报错
        if os.path.exists(source_file):
            # 移动文件,如果目标已有同名文件会覆盖,若想跳过可以加判断
            shutil.move(source_file, target_file)
            print(f"已移动图片: {image_name} -> {target_folder}")
        else:
            print(f"警告:未找到图片文件 {source_file},跳过")

注意事项

  • 路径修改:一定要把source_image_path改成你实际存放图片的路径,不然会找不到文件哦!
  • 权限问题:确保你的Python程序有对F:/Images/的写入权限,不然创建文件夹会失败。
  • 重复文件处理:如果目标文件夹里已经有同名图片,shutil.move会直接覆盖它。如果你想保留原文件,可以把shutil.move改成shutil.copy,或者加个判断跳过已存在的文件。
  • Dataframe使用:如果你的Dataframe是从其他地方读取的(比如CSV),直接替换掉模拟的df就行,不用改后面的逻辑。

运行这段代码后,就会自动生成你要的文件夹结构,所有图片都会乖乖待在对应的文件夹里啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:38:00