Python_获取指定目录下的所有文件
import os def find_files(search_path, include_str=None, filter_strs=None): """查找指定目录下所有的文件。 :param search_path: 查找的目录路径 :param include_str: 获取包含字符串的名称 :param filter_strs: 过滤包含字符串的名称 """ if filter_strs is None: filter_strs = [] files = [] # 获取路径下所有文件 names = os.listdir(search_path) for name in names: path = os.path.abspath(os.path.join(search_path, name)) # 若是目录,则递归 if os.path.isdir(path): files += find_files(path, include_str=include_str, filter_strs=filter_strs) else: # 如果文件名称不包含指定字符串则,则跳过 if include_str is not None and include_str not in name: continue for filter_str in filter_strs: # 如果文件名称包含filter_strs中的字符,则跳过 if filter_str in name: break else: # 未break,说明文件名称中不包含filter_strs中的字符 files.append(path) return files if __name__ == '__main__': # 获取全部文件 f = find_files("./test") print(f) # 获取包含指定字符的文件 f = find_files("./test", include_str=".py") print(f) # 获取不包含指定字符的文件 f = find_files("./test", filter_strs=[".pyc", "__init__"]) print(f) # 获取包含指定字符且不包含某些指定字符的文件 f = find_files("./test", include_str=".py", filter_strs=[".pyc", "__init__"]) print(f)
文件目录结构
执行结果