• 根据指定文件名格式,筛选符合条件的文件


    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])
  • 相关阅读:
    flask2 未整理
    flask1 未整理
    libvirt创建kvm虚拟机步骤
    libvirt之 virsh命令总结
    kvm的xml文件解释
    virsh命令和调用libvirt api的区别
    KVM
    libvirt
    kvm
    oracle中正则表达式的使用
  • 原文地址:https://www.cnblogs.com/superniao/p/10587810.html
Copyright © 2020-2023  润新知