Это должно сделать это:
import os
import shutil
try:
# Mock the problem
for i in range(750):
os.makedirs("Dataset/A/0{}/left".format(i), )
os.makedirs("Dataset/A/0{}/right".format(i))
os.makedirs("Dataset/B/0{}/left".format(i))
os.makedirs("Dataset/B/0{}/right".format(i))
os.mkdir("./Dataset/left")
os.mkdir("./Dataset/right")
except FileExistsError as e:
pass
# See pythoncentral.io/how-to-recursively-copy-a-directory-folder-in-python/
def copyDirectory(src, dest):
try:
shutil.copytree(src, dest)
# Directories are the same
except shutil.Error as e:
pass
# Any error saying that the directory doesn't exist
except OSError as e:
pass
def move(sub):
for file, subfolder, folder in os.walk(sub):
if file.split("/")[-1] in ["right", "left"]:
src = file
dest = "./Dataset/{}/{}".format(
file.split("/")[-1],
file.split("/")[-2]
)
copyDirectory(src, dest)
move("./Dataset/A")
move("./Dataset/B")
По сути, что делает этот скрипт: A) создать макет вашего файлового дерева, B) определить функцию для копирования каталога и C) определить функцию move
для обхода целевых подпапок и применить функцию из B