这是自己的第100篇文章,还是给自己一个鼓励,从零基础做到现在这样,自己还是很开心的,希望以后继续保持,最好能保持到老,直到老的眼花,手抖,那个时候回想起来,不知会不会别有一番滋味。

好了接下来记录一下遍历目录下的所有文件的两种方法:第一种方法利用递归算法;第二种方法利用os.walk()方法。

源数据如下:

python 建立多级目录 python 遍历多级目录_python 建立多级目录

我要返回所有的最终文件,包括的路径、扩展名,注意是最终文件。

记录两个方法之前先记录一下必要的知识:
os.listdir(path)#返回目录下所有的文件和文件夹的名字,包括扩展名
os.path.join(path,file)#将路径与文件连接,形成完整的名字,包括扩展名
os.path.isdir(filepath)#判断是文件还是文件夹,是文件夹,返回True
os.walk(path)#遍历返回所有三个变量组成的元组(文件路径,文件夹名,文件名)《PS:这里只能理解成元组,其实整体上不是一个元组,而是一个生成器》,注意是所有的,也就是说,自带递归似的算法,自动一级一级的返回,反正每次是返回三个元素的元组,如果那一级没有文件夹或者文件,则返回【】‘空列表‘

《方法和结果如下》

python 建立多级目录 python 遍历多级目录_扩展名_02


python 建立多级目录 python 遍历多级目录_文件名_03


以上我们得到了想要的结果,接下来还有一些问题需要扩展一下:

os.walk()到底返回的是什么?

python 建立多级目录 python 遍历多级目录_文件名_04


python 建立多级目录 python 遍历多级目录_python 建立多级目录_05


以上说到如果某一级没有文件夹,文件夹名字位置处就会返回【】,其实如果是文件内没有文件,文件名位置也会返回空,可自行实验,总之返回的一定是个三个元素的元组!接下来我们把整体拆开打印:

python 建立多级目录 python 遍历多级目录_文件名_06


接下来我们再对拆分的个体再循环:

python 建立多级目录 python 遍历多级目录_扩展名_07


这是什么原因呢?

我们看一下类型:

python 建立多级目录 python 遍历多级目录_python 建立多级目录_08


python 建立多级目录 python 遍历多级目录_文件名_09


python 建立多级目录 python 遍历多级目录_元组_10

最后,不知大家有没有发现,我们的压缩文件返回的是压缩文件本身,并没有进行解压缩,里面其实还有文件,那么我们需要怎么办呢,这里我们就需要解压缩的方法了,之后再学习记录吧。
就这样啦,该睡觉了!