如何基于DataFrame路径批量移动文件(支持多目标文件夹)
批量移动文件(基于Pandas DataFrame)
以下是可通用至多目标文件夹的批量文件移动代码,会自动处理目标目录的创建,并包含基础错误处理:
import os import shutil import pandas as pd # 替换为你的实际DataFrame df = pd.DataFrame({ 'old_path': ['/Users/myname/images/cat/file_0.jpg', '/Users/myname/images/dog/file_1.jpg', '/Users/myname/images/squirrel/file_2.jpg'], 'new_path': ['/Users/myname/mydir/file_0.jpg', '/Users/myname/mydir/subdir/file_1.jpg', '/Users/myname/another_dir/file_2.jpg'] }) # 批量处理文件移动 for _, row in df.iterrows(): old_path = row['old_path'] new_path = row['new_path'] # 确保目标父目录存在,不存在则创建(支持嵌套文件夹) target_dir = os.path.dirname(new_path) os.makedirs(target_dir, exist_ok=True) # 执行移动并捕获异常 try: shutil.move(old_path, new_path) print(f"已移动: {old_path} → {new_path}") except FileNotFoundError: print(f"警告: 源文件不存在 - {old_path}") except PermissionError: print(f"警告: 无权限操作文件 - {old_path}") except Exception as err: print(f"处理文件 {old_path} 时出错: {str(err)}")
关键特性说明
- 多目标文件夹兼容:通过
os.makedirs(..., exist_ok=True)自动创建新路径对应的父目录,不管目标是单层文件夹还是嵌套子文件夹都能正常处理。 - 稳健的错误处理:捕获常见的文件操作异常,单个文件处理失败不会中断整个批量任务,同时输出明确提示便于排查问题。
- 通用遍历逻辑:用
df.iterrows()遍历DataFrame的每一行,直接读取old_path和new_path列的值,无需修改核心逻辑即可适配你的数据结构。
内容的提问来源于stack exchange,提问作者psychcoder
相关产品推荐
相关产品推荐

