Python每日一记100>>>遍历目录下的所有文件(多层次)的两种方法以及os.walk深度理解

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

好了接下来记录一下遍历目录下的所有文件的两种方法:第一种方法利用递归算法;第二种方法利用os.walk()方法。
源数据如下:
在这里插入图片描述

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

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

《方法和结果如下》
在这里插入图片描述
在这里插入图片描述
以上我们得到了想要的结果,接下来还有一些问题需要扩展一下:
os.walk()到底返回的是什么?
在这里插入图片描述
在这里插入图片描述
以上说到如果某一级没有文件夹,文件夹名字位置处就会返回【】,其实如果是文件内没有文件,文件名位置也会返回空,可自行实验,总之返回的一定是个三个元素的元组!

接下来我们把整体拆开打印:
在这里插入图片描述
接下来我们再对拆分的个体再循环:
在这里插入图片描述
这是什么原因呢?
我们看一下类型:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值