首页 > 其他 > 详细

测开之路五十三:实现unittest之文件查找

时间:2019-06-18 22:35:37      阅读:111      评论:0      收藏:0      [点我收藏+]

 

设计一个函数,列出目录及子目录下所有文件,可以过滤满足特定要求的文件,也可以只展示特定要求的文件。
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‘, ]))

 

测开之路五十三:实现unittest之文件查找

原文:https://www.cnblogs.com/zhongyehai/p/11048199.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!