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

比拉尔
  • 我有10倍,并在各个折叠2个文件夹face,并且background,我想复制列车内不同的褶皱,验证文件夹,以便火车或验证将具有facebackground从不同的褶皱。

  • 我尝试了以下代码,但是由于Google Colab使用python 3.6.9,所以我不能忽略文件夹存在的错误(如python 3.9),因此出现以下错误:

错误:

try:
     mkdir(name, mode)
except OSError:
     # Cannot rely on checking for EEXIST, since the operating system

FileExistsError: [Errno 17] File exists: 'train/'

我的代码:

#--------------
# Split Dataset
#==============
# we Already have the test set
# !mkdir train
# !mkdir valid
import os, shutil

fileList = os.listdir("NewDataset")
fileList.sort()
for i in [x for x in range(10) if ((x != 9) and (x != 1))]:
    # print(fileList[i])
    # Train
    if(i < 7):
        subPathList = glob.glob('NewDataset/'+fileList[i]+'/**/', recursive=False)
        for subPath in subPathList:
            shutil.copytree(subPath, 'train/')

    # Validate
    else:
        subPathList = glob.glob('NewDataset/'+fileList[i]+'/**/', recursive=False)
        for subPath in subPathList:
            shutil.copytree(subPath, 'valid/')
比拉尔

解决方案是递归地逐个复制文件:

import os, shutil

for i in [x for x in range(10) if ((x != 9) and (x != 1))]:
    # print(fileList[i])
    # Train
    if(i > 2):
        subPathList = glob.glob('/content/NewDataset/'+fileList[i]+'/**/', recursive=False)
        for subPath in subPathList:
            for im in os.listdir(subPath):
                imFullPath = os.path.join(subPath, im)
                targetPath = os.path.join('/content/train',subPath.split('/')[-2]+ '/')
                # print('Train: ', targetPath)
                shutil.copy(imFullPath, targetPath)
    # Validate
    else:
        subPathList = glob.glob('/content/NewDataset/'+fileList[i]+'/**/', recursive=False)
        for subPath in subPathList:
            for im in os.listdir(subPath):
                imFullPath = os.path.join(subPath, im)
                targetPath = os.path.join('/content/valid',subPath.split('/')[-2] + '/')
                # print('Validate: ', targetPath)
                shutil.copy(imFullPath, targetPath)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用powershell将具有不同名称的文件从一个文件夹复制到另一个文件夹?

Powershell脚本将具有大致相同名称的文件从文件夹复制到另一个文件夹

Bash:如何将具有相同名称的多个文件复制到多个文件夹

如何将文件夹复制到 Makefile 中的另一个文件夹?

如何将一个文件夹中的所有文件复制到另一个文件夹并更改扩展名?

如何将文件从文件夹和子文件夹复制到R中的另一个文件夹?

如何将一个文件夹复制到另一个文件夹

如何将Google文档复制到Google Drive Service中的另一个文件夹

将任何名称的网页重定向到另一个文件夹中具有相同名称的另一个网页

使用python将具有特定名称的文件从一个文件夹复制到另一个文件夹

如何将文件/文件夹的权限和所有权从一个文件夹复制到另一个文件夹(递归)

将具有特定名称的文件复制到另一个文件夹

根据 OSX 终端中的已知文件夹名称列表将文件夹复制到另一个文件夹

将文件夹列表复制到另一个文件夹?

如何将几个文件夹中的文件复制到另一个目录

通过排除具有特定名称的所有子文件夹将文件夹复制到另一个位置

Java将文件从文件夹复制到另一个名称不同的文件夹

如何将特定文件从子文件夹复制到 R 中的另一个文件夹?

如何将带有文件的文件夹复制到Unix / Linux中的另一个文件夹?

如何将带有 BATCH 脚本的文件从一个驱动器上的文件夹复制到另一个驱动器上的同名文件夹中?

使用Python将子文件夹中的图像复制到另一个文件夹

将文件从一个文件夹移动到另一个具有相同名称的文件夹

将一个文件复制到不同名称的文件夹中

[Unix][Shell Script] 将一个文件夹中的所有文件复制到另一个文件夹

将文件从一个文件夹复制到另一个文件夹

NodeJS - 如何将一个文件夹复制到另一个文件夹,只覆盖不同的文件?

如何将源文件夹名称附加到复制到 vbs 中另一个位置的文件?

PHP将所有图像文件夹从一个文件夹复制到另一个文件夹

如何使用Powershell将文件夹的内容复制到另一个特定的文件夹?