为了处理一个大文件夹下杂乱的图像数据,笔者需要获得所有包含图像的文件夹目录,手动更改或者复制工作量太大,这里使用os模块的walk函数。
os.walk(top, topdown, onerror, followlinks)
, 其中top
是要遍历的文件夹目录,topdown
是遍历方式,默认为True
返回一个三元组(root,dirs,files)
root 所指的是当前正在遍历的这个文件夹的本身的地址
dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)
遍历方式为True
时,遍历是根文件夹优先,False
是最底层文件夹优先,也就是返回元组顺序不同,但都能把整个文件夹遍历。
该函数会在遍历一个文件夹后返回该文件夹对应的三元组,若该文件下没有子文件夹,则dirs为空,因此可以获得所有不再包含子文件夹的所有文件夹目录或者文件名称,本文目的是目录,代码如下
import os
path = 'D:\CT\CT image\TCGA-ESCA\DOI'
datapath_all = []
for x in os.walk(path):
if not x[1]:
datapath_all.append(x[0])
print(datapath_all)
即可得到D:\CT\CT image\TCGA-ESCA\DOI文件夹下,所有不包含子文件夹的文件目录