文件夹遍历以及过滤功能

遍历文件夹及其子目录

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为过滤文件夹
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容