我目前有一个包含x号的文件夹。 .JPEG图像。图像文件名按特定顺序:label_randomNo._randomString.JPEG
。
使用自定义的Python函数,我希望能够根据文件名中提到的“标签”在子文件夹中复制/粘贴图像(在本地计算机中)。
例如:如果文件名具有car_23_a23d.JPEG,则该函数应创建一个名为car的文件夹,然后将该图像从源文件夹复制粘贴到子文件夹中。这需要根据文件名中的标签对源文件夹中的所有图像进行。显然,当它循环运行时,例如(如果)已经创建了一个汽车子文件夹,它应该只在其中复制/粘贴图像,而不创建另一个名为汽车的子文件夹。
然后我的目标是采用这种有组织的文件夹结构,并使用ImageDataGenerator.flow_from_directory将其加载为CNN模型的原始数据集。 谢谢!
关于, 阿比。
答案 0 :(得分:1)
使用shutil将文件从一个源文件夹复制到目标文件夹。 mypath是存储所有文件的文件夹。然后,我们使用os.listdir()来获取目录中的所有内容。用“ _”分隔文件名,并使用第0个索引创建新目录。 首先,我们检查路径中是否已经存在hte目录。如果没有,则创建一个新目录并复制映像。否则,只需复制映像即可,而不是创建新目录。
import os, shutil
from os import listdir
def start():
mypath = "source/"
for files in listdir(mypath):
directory = (files.split('_'))[0]
if not os.path.exists(directory):
os.makedirs(directory)
shutil.copy("source/" + files, (directory))
else:
shutil.copy("source/" + files, (directory))