在设计网络进行训练前必不可少的部分就是获取文件夹下的图片进行训练
持续更新.............
使用os模块:
参考:Python os.path() 模块 | 菜鸟教程 (runoob.com)
import os
print( os.path.basename('/root/runoob.txt') ) # 返回文件名————————out:runoob.txt
print( os.path.dirname('/root/runoob.txt') ) # 返回目录路径——————out:/root
print( os.path.split('/root/runoob.txt') ) # 分割文件名与路径——————out:('/root','runoob.txt')
print( os.path.join('root','test','runoob.txt') ) # 将目录和文件名合成一个路径——————out:root/test/runoob.txt
os.listdir() 方法 : 返回指定文件夹包含的文件或文件夹名字的列表。该列表顺序以字母排序。
import os
for name in os.listdir(root):
print(name)
os.path.join() : 将多个路径组合后返回
#类中定义
self.namelabel={}
for name in sorted(os.listdir(os.path.join(root))):#遍历根目录下所有文件夹
if not os.path.isdir(os.path.join(root,name)):#listdir可能会把文件夹下文件都包含进来,先把文件过滤掉
continue
self.namelabel[name]=len(self.namelabel.keys())
存取csv文件,若无csv制作csv,有csv则直接读取
def load_csv(self,file):
#若csv不存在,则需要创建
if not os.path.exists(os.path.join(self.root,file)):
images=[]
for name in self.namelabel.keys():
#glob模块,获取到文件夹下不同后缀的图片
images+=glob.glob(os.path.join(self.root,name,'*png'))
images+=glob.glob(os.path.join(self.root,name,'*jpg