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

如何结合pandas DataFrame使用shutil自动复制文件,替代手动执行cp命令

可行实现方案
  1. 先确认你的pandas DataFrame中已经明确对应两列:源图片文件名/路径列、目标文件完整路径列,以下示例默认两列名分别为source_file、target_path,你可以替换成自己实际的列名。
  2. 导入所需依赖库,在脚本头部加入以下代码:
import os
import shutil
  1. 提前创建目标根目录(如果目标路径涉及多层子目录,可以跳过这步,在遍历的时候单独创建):
# 替换成你实际的目标文件夹根路径
os.makedirs("destinationfolder", exist_ok=True)
  1. 遍历DataFrame逐行执行复制操作,和原生cp命令效果完全一致:
for _, row in df.iterrows():
    # 替换成你实际的列名
    source_path = row["source_file"]
    target_path = row["target_path"]
    
    # 可选:如果目标路径存在多层动态子目录,加上这行自动创建
    # os.makedirs(os.path.dirname(target_path), exist_ok=True)
    
    # 判断源文件存在再执行复制,避免报错中断流程
    if os.path.isfile(source_path):
        # copy2会保留文件元数据,和系统cp命令默认行为一致
        shutil.copy2(source_path, target_path)
    else:
        print(f"跳过不存在的源文件:{source_path}")
补充说明
  • 如果你的源图片统一存在指定文件夹下,没有在DataFrame的源文件列写完整路径,可以在赋值source_path的时候做路径拼接:source_path = os.path.join("你的源图片文件夹路径", row["source_file"])
  • 不需要保留文件修改时间、权限等元数据的话,把shutil.copy2换成shutil.copy即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 23:39:01