Python 如何将同名文件夹递归复制到Google Colab中的另一个文件夹

Python 如何将同名文件夹递归复制到Google Colab中的另一个文件夹,python,google-colaboratory,shutil,copytree,Python,Google Colaboratory,Shutil,Copytree,我有10个折叠,每个折叠中有2个文件夹面,和背景,我想在列车内复制不同的折叠,验证文件夹,以便列车或验证将从不同的折叠中有面,背景 我尝试了以下代码,但由于Google Colab使用python 3.6.9,我无法忽略文件夹存在的错误(如python 3.9),因此我得到以下错误: 错误: 试试看: mkdir(名称、模式) 除操作错误外: #无法依靠检查EEXIST,因为操作系统 FileExistError:[Errno 17]文件存在:“train/” 我的代码: #------

我有10个折叠,每个折叠中有2个文件夹
,和
背景
,我想在列车内复制不同的折叠,验证文件夹,以便列车或验证将从不同的折叠中有
背景

  • 我尝试了以下代码,但由于Google Colab使用python 3.6.9,我无法忽略文件夹存在的错误(如python 3.9),因此我得到以下错误:

  • 错误:
    试试看:
    mkdir(名称、模式)
    除操作错误外:
    #无法依靠检查EEXIST,因为操作系统
    FileExistError:[Errno 17]文件存在:“train/”
    
    我的代码:
    #--------------
    #分割数据集
    #==============
    #我们已经有了测试集
    # !mkdir列车
    # !mkdir有效
    导入操作系统,shutil
    fileList=os.listdir(“新数据集”)
    fileList.sort()
    对于[x中的i,对于范围(10)中的x,如果((x!=9)和(x!=1))]:
    #打印(文件列表[i])
    #训练
    如果(i<7):
    subPathList=glob.glob('NewDataset/'+fileList[i]+'/**',recursive=False)
    对于子路径列表中的子路径:
    复制树(子路径“train/”)
    #证实
    其他:
    subPathList=glob.glob('NewDataset/'+fileList[i]+'/**',recursive=False)
    对于子路径列表中的子路径:
    copytree(子路径“valid/”)
    
    解决方案是递归地一个接一个地复制文件:

    导入操作系统,shutil
    对于[x中的i,对于范围(10)中的x,如果((x!=9)和(x!=1))]:
    #打印(文件列表[i])
    #训练
    如果(i>2):
    subPathList=glob.glob('/content/NewDataset/'+fileList[i]+'/**/',recursive=False)
    对于子路径列表中的子路径:
    对于os.listdir(子路径)中的im:
    imFullPath=os.path.join(子路径,im)
    targetPath=os.path.join('/content/train',subPath.split('/')[-2]+'/'))
    #打印('列车:',目标路径)
    shutil.copy(imFullPath,targetPath)
    #证实
    其他:
    subPathList=glob.glob('/content/NewDataset/'+fileList[i]+'/**/',recursive=False)
    对于子路径列表中的子路径:
    对于os.listdir(子路径)中的im:
    imFullPath=os.path.join(子路径,im)
    targetPath=os.path.join('/content/valid',subPath.split('/')[-2]+'/'))
    #打印('Validate:',targetPath)
    shutil.copy(imFullPath,targetPath)