![](/img/trans.png)
[英]How to move files from multiple specific subfolders in the same directory?
[英]How to rename then move specific subfolders to another directory?
我正在嘗試將我的數據集的體系結構重新組織到另一個方便的體系結構中。
鑒於以下架構:
Dataset/A/0000/left/
Dataset/A/0000/right/
Dataset/A/0001/left/
Dataset/A/0001/right/
.
.
Dataset/A/0750/left/
Dataset/A/0750/right/
Dataset/B/0000/left/
Dataset/B/0000/right/
Dataset/B/0001/left/
Dataset/B/0001/right/
.
.
Dataset/B/0750/left/
Dataset/B/0750/right/
我如何在不同的目錄中收集所有“左”和“右”子文件夾,並將它們重命名為具有以下體系結構:
Dataset/left/0000 ### A sub-folder
Dataset/left/0001
.
.
Dataset/left/0750
Dataset/left/0751 ### B sub-folder
Dataset/left/0752
.
.
Dataset/left/1500
這應該這樣做:
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中的函數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.