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])
  • 相关阅读:
    安装oracle11g 并且开启APEX 安装
    爬虫基础
    深度优先广度优先
    部署静态页面到nginx
    Nginx 实现端口转发
    五步教你实现使用Nginx+uWSGI+Django方法部署Django程序
    Please select Android SDK解决办法
    android与JS交互,互相调用方法,跳转到网页
    Android:你要的WebView与 JS 交互方式 都在这里了
    Android与js交互拍照上传资料
  • 原文地址:https://www.cnblogs.com/superniao/p/10587810.html
Copyright © 2011-2022 走看看