Python复制目录触发FileExistsError的原因解析
FileExistsError错误原因解析
核心原因
shutil.copytree的默认限制:shutil.copytree(source, dest)函数默认要求目标目录必须不存在。如果目标路径已经有同名目录,函数会直接抛出FileExistsError,你的报错里/content/gdrive/MyDrive/Data1/MyData/Red就是已经存在的目标目录。- 循环逻辑重复触发复制:你的代码在遍历子文件夹下的
.mp4文件时,每找到一个符合条件的文件就执行一次copytree操作。比如某个子文件夹(如Red)下有多个.mp4文件,第一次执行复制会创建MyData/Red目录,后续循环再次执行复制时,目标目录已存在,直接触发错误。 - 目标路径设计重复:你将目标路径设置为
MyData下与原父文件夹同名的目录,这个目录一旦被创建,后续所有针对该路径的copytree操作都会因目录已存在而失败。
代码中的问题点
你的代码逻辑里,外层循环遍历Data1下的子文件夹,内层循环遍历子文件夹里的.mp4文件,每遍历到一个.mp4就执行一次copytree,这会导致同一个目标目录被多次尝试创建——复制目录只需要执行一次,完全没必要针对每个文件重复执行。
内容的提问来源于stack exchange,提问作者fatemeh khoshhal
相关产品推荐
相关产品推荐

