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])
  • 相关阅读:
    微信证书发布涉及到的问题
    C# Timer自带定时器
    微信accesstoken回调
    c#数组乱序,打乱数组
    JS 数组乱序
    百度地图LBS开放平台AK一直没有用
    C# 微信支付证书使用
    提交失败问题一:检测到有潜在危险
    apache如何发布地图服务
    Java后端进阶教程
  • 原文地址:https://www.cnblogs.com/qinghe123/p/8125628.html
Copyright © 2011-2022 走看看