zoukankan      html  css  js  c++  java
  • 测开之路五十四:实现文件查找

    设计一个函数,列出目录及子目录下所有文件,可以过滤满足特定要求的文件,也可以只展示特定要求的文件。
    def list_files(path, include=[], exclude=[]):pass

    类似于unittest里面的查找case操作

    import os

    def get_files(path, include=[], exclude=[]):
    """
    os.listdir():只列出当前文件夹下的文件
    os.walk():递归列出当前文件夹下的所有文件夹下的文件
    path是要列出文件的路径。
    include:白名单规则
    exclude:黑名单规则
    根据代码规则,黑名单机制优先于白名单机制执行。
    """
    files = []
    # 如果路径不存在,则直接返回空列表。
    if not os.path.exists(path):
    return files
    # 如果路径是文件,则直接返回文件。
    if os.path.isfile(path):
    # 这里处理exclude规则--黑名单机制。不为空则遍历每一个规则去匹配
    if exclude:
    for rule in exclude:
    if path.find(rule) != -1:
    return files
    # 这里处理include规则--白名单机制。
    if include:
    for rule in include:
    if path.find(rule) != -1:
    files.append(path)
    # 既不在白名单也不再黑名单里面
    else:
    files.append(path)
    return files
    # 如果路径是目录,则列出目录内容,递归处理。
    if os.path.isdir(path):
    results = os.listdir(path)
    for result in results:
    # 将原路径与路径下文件名拼接成新路径。
    new_path = "/".join([path, result])
    files.extend(get_files(new_path, include, exclude))
    return files


    if __name__ == '__main__':
    path = 'D:/PycharmProjects/test/1'
    print(get_files(path, exclude=['__init__.py', ]))
  • 相关阅读:
    Centos常用命令(四、进程)
    搭建git服务器(Centos7)
    tortoiseGit使用
    docker常用命令
    配置docker阿里云加速器_CentOS7
    Centos常用命令(三、网络配置)
    Centos常用命令(二、任务调度和磁盘管理)
    spring的作用
    什么是spring框架
    get和post的区别
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/11048199.html
Copyright © 2011-2022 走看看