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

如何通过Python递归遍历目录树生成对应嵌套JSON结构

实现方案

核心思路是让递归函数每次返回当前目录对应的嵌套字典结构,目录对应嵌套子字典,文件对应None值(序列化后就是JSON的null)。

完整代码

import os
import json

def walkfn(dirname):
    current_level = {}
    for name in os.listdir(dirname):
        full_path = os.path.join(dirname, name)
        if os.path.isdir(full_path):
            # 递归获取子目录结构
            current_level[name] = walkfn(full_path)
        elif os.path.isfile(full_path):
            # 文件对应值设为None
            current_level[name] = None
    return current_level

# 调用示例
if __name__ == "__main__":
    # 替换为你实际要遍历的根目录路径
    root_dir = "./testDir"
    # 构造外层结构,外层键名可根据需求修改
    res = {
        "test": walkfn(root_dir)
    }
    # 输出格式化JSON
    print(json.dumps(res, indent=4, ensure_ascii=False))

说明

  1. 递归函数每次调用都会生成当前目录层级的字典,子目录会触发递归调用,把返回的子目录字典作为当前键的取值
  2. 文件类型直接设值为None,序列化JSON时会自动转为null,符合你要求的结构
  3. 若需要过滤隐藏文件/目录、处理软链接,可在遍历逻辑中添加对应判断条件即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 14:45:03