Python遍历文件夹下所有文件

在日常的编程中,我们难免会遇到去打开个文件的需求。python标准库中有一个walk()方法,是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录。

walk()参数格式如下:

os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
   top:是你所要遍历的目录的地址。
   topdown:可选。True:优先遍历 top 目录。False:优先遍历 top 的子目录(默认为True)。如果 topdown 参数为 True,walk 会遍历top文件夹,与    top 文件夹中每一个子目录。
   onerror:可选,需要一个 callable 对象,当 walk 需要异常时,会调用。
   followlinks:可选。主要决定是否遍历目录下的快捷方式(linux 下是软连接 symbolic link )实际所指的目录(默认关闭)。

返回值:一个三元组(root,dirs,files)。

root:当前正在遍历的这个文件夹。
dirs:root下的文件夹。
files:root下的文件list。

代码示例:

1
2
3
4
5
6
7
8
9
10
for root, dirs, files in os.walk(filePath):
# root 表示当前正在访问的文件夹路径
# dirs 表示该文件夹下的子目录名list
# files 表示该文件夹下的文件list
# 遍历文件
for f in files:
print(os.path.join(root, f))
# 遍历所有的文件夹
for d in dirs:
print(os.path.join(root, d))

实际运用时若想得到某目录下所有文件名,可选择递归函数实现:

1
2
3
4
5
6
7
def WalkFiles(filePath):
for root, dirs, files in os.walk(filePath):
for f in files:
print(os.path.join(root, f))
for d in dirs:
WalkFiles(os.path.join(root, d))
print(os.path.join(root, d))