• 测开之路五十四:实现文件查找


    设计一个函数,列出目录及子目录下所有文件,可以过滤满足特定要求的文件,也可以只展示特定要求的文件。
    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', ]))
  • 相关阅读:
    ​综述 | SLAM回环检测方法
    从零开始一起学习SLAM | 用四元数插值来对齐IMU和图像帧
    2019-2020年值得关注的9个AR发展趋势
    计算机视觉方向简介 | 图像拼接
    “人工智能资源对接平台”发布,找人、找技术不再难!
    解决上不了网的特例
    机械键盘简介
    笔记本升级方案
    CSS构造表单
    CSS构造表格
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/11048199.html
Copyright © 2020-2023  润新知