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

Python调用shutil.copyfile报错FileNotFoundError[Errno 2]无此文件或目录

错误原因
  • shutil.copyfile() 要求传入的目标路径必须是完整的目标文件路径(带文件名),不能仅传入文件夹路径。你当前代码中output仅为目标文件夹路径,copyfile不会自动拼接源文件名到目标路径后,会直接尝试将文件内容写入文件夹路径,触发报错。
  • 目录创建逻辑存在问题:你当前output的值为/x/x/x/x/DatasetNiiCleanedcopyB3/test/NCP/61/1255/,调用path.dirname(path.abspath(output))时,实际取到的是上一级路径/x/x/x/x/DatasetNiiCleanedcopyB3/test/NCP/61/,也就是说代码仅创建到61级目录,你要用到的1255文件夹并未被创建,进一步触发路径不存在报错。
解决方法

调整目标路径拼接逻辑和目录创建逻辑,确保目标路径是带文件名的完整路径,且目录创建到目标文件的父级即可,修正后的核心代码如下:

# loop over the image paths
for imagePath in imagePaths:
    word='/'.join(imagePath.split('/')[7:])
    #search in dataframe
    if((df['imgpath'].str.contains(word)).any()):
        imPath = Path(imagePath)
        destination_path= imPath.parent.absolute()
        # 拆分目标文件夹路径和最终完整文件路径,保留原文件名
        output_dir = str(destination_path).replace('DatasetNiiCleanedcopyB', 'DatasetNiiCleanedcopyB3')
        output_file = path.join(output_dir, imPath.name)
        print('source path is'+ imagePath)
        print('destination path is'+ output_file)   
        # 直接创建目标文件所在的父目录
        makedirs(output_dir, exist_ok=True)
        # 传入完整文件路径作为copyfile的目标参数
        copyfile(imagePath, output_file)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:24:03