Python如何列出与指定文件夹名称列表匹配且排除指定目录的子目录
匹配指定名称的子目录路径最优实现方案
核心实现思路
- 提前将目标文件夹列表转为集合,将名称匹配的时间复杂度从O(n)降到O(1)
- 遍历过程中直接从
os.walk的dirs参数中移除UPLOADED目录,避免无效递归,大幅提升执行效率 - 直接匹配当前遍历目录的名称,无需遍历目录下的文件,减少冗余操作
完整实现代码
import os # 转为集合提升匹配效率 folder_set = {'AL_CLNC_2021', 'AL_ICF_2021', 'AL_IMD_2021', 'AK_IP_2021', 'AK_NF_2021'} # 替换为你的DirA所在的实际本地路径 root_path = '你的DirA实际路径' result = [] for root, dirs, files in os.walk(root_path): # 移除UPLOADED目录,阻止os.walk进入该目录遍历 if 'UPLOADED' in dirs: dirs.remove('UPLOADED') # 提取当前目录的最后一级名称做匹配 current_dir_name = os.path.basename(root) if current_dir_name in folder_set: # 转换为要求的路径格式,Windows环境自动替换反斜杠为正斜杠 format_path = root.replace(root_path, '').replace('\\', '/') result.append(format_path) # 按指定格式输出结果 print('[', end='') for idx, path in enumerate(result): if idx != 0: print(',') print(f' {path}', end='') print(',]')
输出效果
[/Project/2021/Alabama/AL_CLNC_2021, /Project/2021/Alabama/AL_ICF_2021, /Project/2021/Alabama/AL_IMD_2021, /Project/2021/Arkansas/AK_IP_2021, /Project/2021/Arkansas/AK_NF_2021,]
内容的提问来源于stack exchange,提问作者miquiztli_
相关产品推荐
相关产品推荐

