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

Python自定义Folder类获取指定目录二级子文件夹问题求助

解决方案

原有代码仅扫描了传入根路径下的第一级目录,因此仅返回Actor1、Actor2级别的路径,没有进一步扫描一级子目录下的内容。以下是两种适配需求的修改方案:

方案1:固定获取二级子文件夹(适配你当前的目录结构)

如果你的目录结构固定为两级子目录,直接用双层通配符匹配即可,代码修改如下:

import os
import glob

class Folder:
    """Attempt to model typical folder."""
    def __init__(self, path):
        self.path = path

    def get_folder(self):
        # 用*/*匹配两级目录
        all_sub_paths = glob.glob(os.path.join(self.path, "*", "*"))
        # 过滤排除文件,仅保留文件夹路径
        return [p for p in all_sub_paths if os.path.isdir(p)]

调用方式和之前一致:Folder("你的datasets目录路径").get_folder(),即可直接返回你需要的四个二级子文件夹路径。

方案2:适配任意层级的子文件夹获取

如果后续可能需要获取更深层级的目录,可使用递归扫描的方案,支持指定扫描深度:

import os
from pathlib import Path

class Folder:
    """Attempt to model typical folder."""
    def __init__(self, path):
        self.path = Path(path)

    def get_folder(self, depth=None):
        sub_dirs = []
        # 指定深度为2时返回二级子目录
        if depth == 2:
            path_iter = self.path.glob("*/*")
        # 不指定深度时递归返回所有层级子目录
        else:
            path_iter = self.path.rglob("*")
        for p in path_iter:
            if p.is_dir():
                # 可根据需要修改为相对路径/正斜杠格式等
                sub_dirs.append(str(p.resolve()))
        return sub_dirs

调用时传入depth=2即可获得目标结果:Folder("你的datasets目录路径").get_folder(depth=2)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:06:05