zoukankan      html  css  js  c++  java
  • python walk历遍目录

    import os
    import fnmatch
    
    
    def is_file_match(filename, patterns):
        for pattern in patterns:
            if fnmatch.fnmatch(filename, pattern):
                return True
            return False
    
    
    def find_specific_files(root, patterns=['*'], exclude_dir=[]):
        for root, dirnames, filenames in os.walk(root):
            for filename in filenames:
                if is_file_match(filename, patterns):
                    yield os.path.join(root, filename):
                    for d in exclude_dir:
                        if d in dirnames:
                            dirnames.remove(d)
                            
    #查找目录下所有文件
    for item in find_specific_files('.')
        print(item)
        
    #查找目录下所有图片
    patterns = ['*.jpg','*.jpeg','*.png','*.tif','*.tiff']
    for item in find_specific_files('.',patterns)
        print(item)
        
    #查找目录树中,除dir2目录以为其他目录下的所有图片
    patterns1 = ['*.jpg','*.jpeg','*.png','*.tif','*.tiff']
    exclude_dirs = ['dir2']
    for item in find_specific_files('.',patterns1,exclude_dirs):
        print(item)
        
    #查找目录下最大的十个文件,find_specific_files已经能找到某个目录下的所有文件,只要获取文件大小并按大小排序,输出最大的十个文件即可
    files = {name:os.path.getsize(name) for name in find_specific_files('.')}
    result = sorted(files.items(),key=lambda d:d[1],reverse=True)[:10]
    for i in enumerate(result,1):
        print(i,t[0],t[1])
  • 相关阅读:
    2019学期第十周编程总结
    2019学期第九周编程总结
    第七次作业
    第六次作业
    第五次作业
    jsp第四次作业
    3.10
    3.4
    3.3jsp作业
    最后一次安卓作业
  • 原文地址:https://www.cnblogs.com/qinghe123/p/8125628.html
Copyright © 2011-2022 走看看