You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 16:06:03