方法一:递归法
1
2 3 4 5 6 7 8 |
import
os
def displayDir2 ( dir ): for i in os. listdir ( dir ): file = os. path. join ( dir ,i ) if os. path. isdir ( file ): displayDir2 ( file ) else: print file |
方法二:os模块内置的walk()方法
1
2 3 4 5 6 |
import
os
def displayDir ( dir ): yid = os. walk ( dir ) for rootDir ,pathList ,fileList in yid: for file in fileList: print os. path. join (rootDir , file ) |
递归法的方法一比较直观,容易理解。而方法二:
1、os.walk() 是一个生成器(generator)函数,使用它将创建一个可迭代的对象;
2、每次循环迭代则产生一个包含三个元素的元组,分别是:路径名、目录列表、文件列表;
3、walk的完整声明:walk(top,topdown=True,οnerrοr=None),top是要目录路径,topdown=True表示先遍历根目录再遍历子目录(默认方式),False则反之;οnerrοr=None表示忽略遍历时产生的错误,或者指定一个自定义的函数处理错误信息!