理解os.walk()

112 篇文章 7 订阅
79 篇文章 1 订阅

os.walk()是一个经常用到的文件、目录遍历方法,可以帮助我们处理文件、目录方面的事情,获得目标文件夹下所有的目录名和文件名。
首先明确,对某一文件夹用os.walk()方法遍历时会返回多少个结果:
假如目标文件夹为./man-women,该文件夹下有两个子文件夹:./man-women/man和./man-women/women,那么用os.walk()方法遍历./man-women文件夹时会返回三个结果,每隔结果返回一个三元组:(root, dirs, filenames)。该三元组中第一个元素为当前遍历的文件夹,当然该文件夹是位于os.walk()方法遍历的路径下面的,对于本例,该文件夹是位于./man-women下面的,也即./man-women/man或./man-women/women或者是./man-women本身;第二个元素为当前遍历的文件夹下面存在的文件夹,本例中./man-women/man或./man-women/women下面没有文件夹了,所以当遍历对象是这两个文件夹时,第二个元素是一个空列表;第三个元素是当前遍历文件夹中存在的文件名,有几个文件就显示几个文件名,本例的目录结构如下图所示:
man-women文件夹下:
在这里插入图片描述
man文件夹下的文件:
在这里插入图片描述
women文件夹下:
在这里插入图片描述

for i in os.walk("./man-woman"):
	print(i)
	print("++++++++++++++++++++++++++++++++")

输出结果如下:

('man_woman\\', ['man', 'woman'], [])
++++++++++++++++++++++++++++++++
('man_woman\\man', [], ['man (1).jpg', 'man (10).jpg', 'man (2).jpg', 'man (3).jpg', 'man (4).jpg', 'man (5).jpg', 'man (6).jpg', 'man (7).jpg', 'man (8).jpg', 'man (9).jpg'])
++++++++++++++++++++++++++++++++
('man_woman\\woman', [], ['woman (1).jpg', 'woman (10).jpg', 'woman (2).jpg', 'woman (3).jpg', 'woman (4).jpg', 'woman (5).jpg', 'woman (6).jpg', 'woman (7).jpg', 'woman (8).jpg', 'woman (9).jpg'])
++++++++++++++++++++++++++++++++

我们使用os.sep.join()方法将三元组的第一个和第三个元素连接起来就能查找到os.walk()目标文件夹及其所有子文件夹中的所有文件。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值