基于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
相关产品推荐
相关产品推荐

