在神经网络准备训练集的时候,经常需要从文件夹中读取全部图片。经常遇到的有两种方式
os.listdir()是列举文件夹中所有文件名。然后通过os.path.join()函数将文件夹的地址和文件夹名称连接起来获得绝对地址。
- import os
-
- files=os.listdir('./T91_HR')
- print(type(files))
- print(files)
-
- for i in files:
- path=os.path.join('./T91_HR/'+i)
- print(path)
glob
是用于匹配符合指定模式的文件集合的一种语言
返回所有匹配的文件路径列表。它只有一个参数pathname,定义了文件路径匹配规则,这里可以是绝对路径,也可以是相对路径
这里返回的是一个列表
- from glob import glob
- import os
- path=os.path.join('./T91_HR/*.png')
- files=glob(path)
- print(type(files))
- for i in files:
- print(i)
这个函数与glob.glob()函数的功能类似,也只有pathname一个参数,但是这个函数返回一个迭代器,也就是说一次只返回一个路径,相比于glob.glob()会占用更少的内存。
- from glob import iglob
- import os
- path=os.path.join('./T91_HR/*.png')
- files=iglob(path)
- print(type(files))
- from natsort import natsorted
- a = ['1.png', '3.png', '10.png', '2.png']
- ##常规排序
- a.sort()
- print(a)
- ##自然排序
- b = natsorted(a)
- print(b)