如何通过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))
说明
- 递归函数每次调用都会生成当前目录层级的字典,子目录会触发递归调用,把返回的子目录字典作为当前键的取值
- 文件类型直接设值为
None,序列化JSON时会自动转为null,符合你要求的结构 - 若需要过滤隐藏文件/目录、处理软链接,可在遍历逻辑中添加对应判断条件即可
内容的提问来源于stack exchange,提问作者praiseHellRaiseDale
相关产品推荐
相关产品推荐

