zoukankan      html  css  js  c++  java
  • Python查找文件

    1. 利用字符串的前缀和后缀匹配查找文件

    • str.startswith()
    • star.endswith()

    2.使用fnmatch

    • fnmatch              判断文件名是否符合特定模式
    • fnmatchchcase    判断文件名是否符合特定模式,不区分大小写
    • filter                返回输入列表中,符合特定模式的文件名列表
    • translate            将通配符模式换成正则表达式

    fnmatch支持的通配符如下:

    • *                   匹配任何数量的字符
    • ?                  匹配单个字符
    • [seq]           匹配seq中的字符
    • [!seq]          匹配出seq以外的字符
    fnmatch 

    filter

      filter每次对一组文件名进行匹配,而不是单个,它需要传入文件名列表作为第一个参数

     3. 使用glob

    glob是标准库

    4. 使用os.walk遍历目录树

       walk函数会遍历当前目录及其子目录,并且对于没一个目录,返回一个三元组(dirpath,dirnames,filenames),

    dirpath是当前目录,dirnames是当前目录下的所有子目录,filenames是当前目录下的所有文件。

    案列:查找目录及其子目录中的的图像文件

    综合案列:

    一个通用的查询文件的python脚本

    fnmatch_file.py

    #!/usr/bin/env python
    # coding=utf-8
    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_dirs=[]):
        for root, dirnames, filenames in os.walk(root):
            for filename in filenames:
                if is_file_match(filename, patterns):
                    if filename in filenames:
                        yield os.path.join(root, filename)
    
            for d in exclude_dirs:
                if d in dirnames:
                    dirnames.remove(d)

      1. 查找目录下的所有文件

         2.查找所有图片

       3. 除开test2以外的所有图片

         4. 查找目录及子目录下最大的十个文件

  • 相关阅读:
    页面高度自适应方法(PC、移动端都适用)
    Axure 文本框去掉边框 富文本 粘贴文字图标
    Axure 文本框去掉边框 富文本 粘贴文字图标
    mui switch 点击事件不冒泡
    使用vue-router+vuex进行导航守卫(转)
    Layui select下拉框改变之 change 监听事件(转)
    jQuery获取节点和子节点文本的方法
    动态规划(3)——算法导论(18)
    动态规划(2)——算法导论(17)
    Base64编码
  • 原文地址:https://www.cnblogs.com/zydev/p/8685089.html
Copyright © 2011-2022 走看看