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

Python如何仅获取指定目录下的一级文件夹名称而不遍历子文件夹

解决方法

你只需要获取一级目录下的文件夹,不需要使用os.walk遍历完整目录树,以下是两种可行方案:

方案1:使用os.scandir(推荐,性能最优)

直接扫描目标根目录下的所有条目,筛选出文件夹即可,不会访问任何深层目录:

import os

root_path = app.config['DATASET_DIRECTORY']
first_level_folders = []

with os.scandir(root_path) as entries:
    for entry in entries:
        # 只保留文件夹,过滤文件
        if entry.is_dir():
            first_level_folders.append(entry.name)

# 输出结果
for folder in first_level_folders:
    print(folder)

方案2:仅读取os.walk的第一层结果

如果需要保留os.walk的写法,只需要取第一次迭代的结果即可,不需要遍历整个迭代器:

import os

root_path = app.config['DATASET_DIRECTORY']
# next()直接取os.walk的第一个返回值,对应根目录下的所有内容
root, dirs, files = next(os.walk(root_path))
first_level_folders = dirs

# 输出结果
for folder in first_level_folders:
    print(folder)

原代码问题说明

你之前的写法遍历了os.walk的所有迭代结果,os.walk默认会逐层向下遍历所有子目录,每一层迭代都会返回对应层级的文件夹路径,因此会输出所有层级的文件夹。

内容的提问来源于stack exchange,提问作者Abdalrhman Usama

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 21:18:04