方法一:递归法
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,onerror=None),top是要目录路径,topdown=True表示先遍历根目录再遍历子目录(默认方式),False则反之;onerror=None表示忽略遍历时产生的错误,或者指定一个自定义的函数处理错误信息!