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'])
++++++++++++++++++++++++++++++++