zoukankan      html  css  js  c++  java
  • 根据指定文件名格式,筛选符合条件的文件

    import os
    import fnmatch
    """根据指定文件名格式,筛选符合条件的文件,把文件的路径加上文件名一起返回"""
    
    
    def is_file_match(filename, patterns):
        """
        判断符合指定模式的文件名
        :param filename: 文件名
        :param patterns: 文件名模式的列表
        :return: True False
        """
        # print(patterns)
        for pattern in patterns:
            # 遍历指定文件模式
            # print(pattern)
            if fnmatch.fnmatch(filename, pattern):
    
                # 利用fnmatch方法判断文件名是否符合指定模式
                return True
        return False
    
    
    def find_specific_files(root, patterns=['*'], exclude_dirs=[]):
        """
        # 查找符合指定文件模式的文件的函数
        :param root: 需要查找文件的路径
        :param patterns: 指定文件名模式列表
        :param exclude_dirs: 不包含路径
        :return:
        """
        for root, list_dirnames, list_filenames in os.walk(root):
            # os.walk方法返回三元组(指定路径名,目录列表,文件列表)
            for filename in list_filenames:
                # 遍历文件列表
                if is_file_match(filename, patterns):
                    # 调用文件判断方法
                    yield os.path.join(root, filename)
                    for d in exclude_dirs:
                        if d in list_dirnames:
                            list_dirnames.remove(d)
    
    
    if __name__ == '__main__':
        patterns = ['*']
        # print(is_file_match('a.txt', patterns))
        ret = find_specific_files('.', patterns)
        for i in ret:
            print(i)
        #     print(i, '---------->', os.path.getsize(i))
        # files = {name: os.path.getsize(name) for name in ret}
        # result = sorted(files.items(), key=lambda d: d[1], reverse=True)
        # print(result)
        # for i, j in enumerate(result, 1):
        #     print(i,j[0],j[1])
  • 相关阅读:
    冒泡排序的PHP实现 Bubble Sort
    什么是排序算法
    使用memcache 心得和注意事项
    Memcache存储机制与指令汇总
    php中ob缓存机制
    防止php重复提交表单更安全的方法
    Nginx负载均衡配置实例详解
    FAT和EXFAT文件系统
    uCOS-II模拟(VS2010&WIN32)
    MIPS汇编指令集
  • 原文地址:https://www.cnblogs.com/superniao/p/10587810.html
Copyright © 2011-2022 走看看