python的os.walk()方法十分强大,它对目录的遍历不能指定深度,也就是一直遍历到最深处为止,且采用深度优先的遍历方法,第一个参数是要遍历的文件夹路径,第二个参数topdown如果为真,则从根向下遍历,若为假,则从最深处向根遍历,示例如下:
import os
for root, dirs, files in os.walk('f:\aa', topdown=False):
print('root=',root)
print('dirs=',dirs)
print('files=',files)
输出如下:
root= f:\aa\22\33
dirs= []
files= ['f44']
root= f:\aa\22
dirs= ['33']
files= ['f33']
root= f:\aa\222\333
dirs= []
files= []
root= f:\aa\222
dirs= ['333']
files= []
root= f:\aa
dirs= ['22', '222']
files= ['f22']
如果去掉第二行中的“topdown=False”,输出如下:
root= f:\aa
dirs= ['22', '222']
files= ['f22']
root= f:\aa\22
dirs= ['33']
files= ['f33']
root= f:\aa\22\33
dirs= []
files= ['f44']
root= f:\aa\222
dirs= ['333']
files= []
root= f:\aa\222\333
dirs= []
files= []
如果仅仅是列出第一层目录名,则用listdir():
print(os.listdir('f:\aa'))
的输出是:
['22', '222', 'f22']