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

基于DataFrame列信息将图片迁移至对应新目录的实现求助

解决方案

可以使用shutil模块实现文件移动,结合DataFrame遍历完成批量迁移,完整代码如下:

import os
import shutil
import pandas as pd  # 确保已导入pandas

# 替换为你的实际根目录路径
root_path = "/your/target/root/folder"

# 遍历DataFrame每一行,处理每个ID的图片
for _, row in df.iterrows():
    # 构建当前ID的目标文件夹路径
    id_target_dir = os.path.join(root_path, str(row['id']))
    
    # 定义存储图片路径的列名(需和你的DataFrame列名完全匹配)
    image_path_columns = ['Image 1 filename path', 'Image 2 filename path', 'Image 3 filename path']
    
    for col in image_path_columns:
        source_image_path = row[col]
        
        # 跳过空值或不存在的文件,避免报错
        if pd.isna(source_image_path) or not os.path.isfile(source_image_path):
            print(f"跳过无效路径: {source_image_path}")
            continue
        
        # 保留原始文件名,构建目标路径
        image_filename = os.path.basename(source_image_path)
        target_image_path = os.path.join(id_target_dir, image_filename)
        
        # 执行文件移动
        shutil.move(source_image_path, target_image_path)

关键说明

  • 使用shutil.move():Python标准库中专门用于文件迁移的方法,自动处理跨文件系统的移动逻辑,比手动复制+删除更高效可靠
  • 遍历DataFrame行:通过iterrows()逐行处理,确保每个ID对应的三张图片都被精准迁移到对应文件夹
  • 异常防护:增加空值检查和文件存在性验证,避免因数据缺失或文件不存在导致程序崩溃
  • 保留原文件名:通过os.path.basename()提取原始文件名,保证迁移后文件名称不变

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:01:30