os.walk('path') 函数对于每个目录返回一个三元组,(dirpath, dirnames, filenames),
第一个是路径, 第二个是路径下面的目录, 第三个是路径下面的文件
如果加参数 topdown=False 则表示自下而上进行遍历, 默认为 topdown=True 即自上而下进行遍历
例如对于下面的结构来说
- # 对于上述结构, os.walk() 的结果为
- ['dir', ['dir1', 'dir2'], ['file1.txt', 'file2.txt']]
- ['dir\\dir1', ['dir11', 'dir12'], []]
- ['dir\\dir1\\dir11', [], ['file111.txt']]
- ['dir\\dir1\\dir12', [], []]
- ['dir\\dir2', ['dir21'], ['file21.txt']]
- ['dir\\dir2\\dir21', [], []]
- # 可通过如下脚本验证
- import sys
- l=[]
- for root,dirs,files in os.walk('dir'):
- l.append(root)
- l.append(dirs)
- l.append(files)
- print(l)
- l=[]
结果分析
1. 先以给定的目录作为根目录进行遍历, 读取根目录的文件夹和文件
2. 以根目录下子目录为新的根目录进行遍历, 读取其下面的文件夹和文件
3. 再以 2 中得到的子目录为根目录进行遍历, 读取其下面的文件夹和文件
4. 重复 3, 直至所有子目录下面没有子目录和文件
来源: http://www.bubuko.com/infodetail-2873134.html