如下图所示,txt文档里面放的是图片名称与标签(名称后面的数字即为标签),第三张图表示jpg文件下的图片。



第一步:标签里面有多少个类就需要创建相应多的文件夹
import os
path = 'file_create' #设置创建后文件夹存放的位置,和本次程序文件同一目录下
for i in range(102): #这里创建102个文件夹,有多少类,就修改为多少
# *定义一个变量判断文件是否存在,path指代路径,str(i)指代文件夹的名字*
isExists = os.path.exists(path+str(i))
if not isExists: #判断如果文件不存在,则创建
os.makedirs(str(i))
print("%s 目录创建成功"%i)
else:
print("%s 目录已经存在"%i)
continue #如果文件不存在,则继续上述操作,直到循环结束
第二步:将每一类的文件放在同一个TXT里面
file = open('im_valid.txt','r') #以验证集为例,打开
line = '1' #给line赋个值,循环用
while line != '': #读完就停止循环
line = str(file.readline()) #将读出来的行,给line
write = open(line[20:-1]+'.txt', 'a') #以追加的方式创建以数字为名的文本文件,20:-1是行中第20个字符到最后一个字符
write.write(line[4:19]+'\n') #写入行,将行中的第4个字符到19个字符写进去
write.close() #关闭文件
print(line)#[20:-1]) #观察程序运行用滴
file.close() #关闭文件
第三步:最重要的一步,根据上一步的每一类的TXT文档,将对应图片放入对应的文件夹。
import os # os是用来切换路径和创建文件夹的。
from shutil import copy # shutil 是用来复制黏贴文件的
file_path = r'C:\Users\deep learning\.keras\file_create\jpg' # 就是你图片的路径
line = '1' #赋个初值
for i in range(102): #有多少个类这数字就是多少
file = open(str(i)+'.txt', 'r') #打开每一类的TXT文件
while line != '': #读到最后一个再跳出去
print(line) #观察程序运行用的
line = str(file.readline()).replace('\n','') #读一行,用空格替代换行符
from_path = os.path.join(file_path, line) #在文件夹里面找到对应图片
to_path = 'C:\\Users\\deep learning\\.keras\\file_create'+'\\'+str(i) #放图片的文件夹
print(from_path, to_path) #观察程序运行的
try: #因为有些类里面的图片没有,会报错,所以跳过这类错误
copy(from_path, to_path) #将图片复制过去
except:
pass
file.close() 关闭文件
line = '1' #因为while循环完line是空格,所以重新赋值
最终结果:











