os.walk(‘dir’)#生成一个目录下的所有文件名返回一个三元tuple(dirpath,dirnames,filenames).
[root@localhost tmp]# tree test_walk/test_walk/├── dir1│ ├── dir11│ │ └── dir11file1│ ├── dir1file1│ └── dir1file2├── dir2│ ├── dir2file1│ └── dir2file2└── dir3 ├── dir3file1 └── dir3fil
>>> for root,dirs,files in os.walk('/tmp/test_walk/'): print 'ROOT = %s,dirs = %s ,files = %s' % (root,dirs,files)...ROOT = /tmp/test_walk/,dirs = ['dir1', 'dir3', 'dir2'] ,files = []ROOT = /tmp/test_walk/dir1,dirs = ['dir11'] ,files = ['dir1file1', 'dir1file2']ROOT = /tmp/test_walk/dir1/dir11,dirs = [] ,files = ['dir11file1']ROOT = /tmp/test_walk/dir3,dirs = [] ,files = ['dir3file2', 'dir3file1']ROOT = /tmp/test_walk/dir2,dirs = [] ,files = ['dir2file2', 'dir2file1']
>>> for i in os.walk('/tmp/test_walk/'): print i[0].../tmp/test_walk//tmp/test_walk/dir1/tmp/test_walk/dir1/dir11/tmp/test_walk/dir3/tmp/test_walk/dir2>>> for i in os.walk('/tmp/test_walk/'): print i[1]...['dir1', 'dir3', 'dir2']['dir11'][][][]>>> for i in os.walk('/tmp/test_walk/'): print i[2]...[]['dir1file1', 'dir1file2']['dir11file1']['dir3file2', 'dir3file1']['dir2file2', 'dir2file1']>>>
结果分析
1,先从根目录进行遍历,读取跟目录的文件夹和文件。2,以根目录第一个子目录为新的根目录,读取其文件夹和文件。3,再以2中的第一个子文件夹为根目录,读取文件夹和文件。(这个应该是属于树结构里面的自上而下深度遍历算法)4,读取1步骤里面其他子目录的文件夹和文件。
原文地址:python-os.walk函数, 感谢原作者分享。 旁观者的姓名永远爬不到比赛的计分板上。