遍历文件夹及其子目录
import os
def _iter_files(root_dir):
# 遍历文件夹及其子目录,返回文件绝对路径
for root_dir, dirs, file_names in os.walk(root_dir):
for _dir in dirs:
_iter_files(_dir)
for file_name in file_names:
yield os.path.join(root, file_name)
- 说明:root_dir为根目录,dirs为根目录下的子目录,file_names为文件名,整个程序采用的是递归的形式遍历根目录下的文件及其文件夹
遍历文件夹及其子目录并支持过滤指定的文件夹和文件扩展名
import os
def _iter_files(src_dir, exclude_file_type, exclude_dir):
# 遍历文件夹及其子目录,返回文件绝对路径
for root_dir, dirs, file_names in os.walk(src_dir):
for _dir in dirs:
_iter_files(_dir, exclude_file_type, exclude_dir)
dirs[:] = [dir for dir in dirs if dir not in exclude_dir]
for filename in file_names:
file_name, file_ext = os.path.splitext(filename)
if file_ext in exclude_file_type:
continue
yield os.path.join(root_dir, filename)
- 说明:src_dir为指定根目录,exclude_file_type为过滤文件类型,exclude_dir为过滤文件夹