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

Python实现从第三方API递归获取全层级子路径求助

递归获取全层级路径的函数修正方案

原代码存在的问题

  • 未将当前传入的父路径加入结果集,导致最终结果缺失顶层路径
  • 递归调用后的子路径未被收集,仅执行函数但未保存返回值
  • while循环逻辑错误,无意义的重复递归调用,存在死循环风险
  • 无数据时返回None,合并数组时会引发类型错误

修正后的递归实现

def get_all_paths(path_name):
    # 结果数组先加入当前路径,保证层级完整
    all_paths = [path_name]
    # 调用第三方API获取下一级子路径
    child_paths = get_path_from_api(path=path_name)
    for path in child_paths:
        if path.is_directory:
            # 递归获取子路径的全层级路径,并合并到结果中
            all_paths.extend(get_all_paths(path.name))
    return all_paths

初始路径列表的处理

如果有初始路径列表(如['path1', 'path2']),可以通过以下方式合并所有结果:

initial_paths = ['path1', 'path2']
final = []
for path in initial_paths:
    final.extend(get_all_paths(path))

逻辑说明

  1. 每个路径首先将自身加入结果数组,确保父路径不会丢失
  2. 遍历API返回的子路径,仅对目录类型的路径进行递归处理
  3. 递归调用返回的子路径集合直接合并到当前结果数组中
  4. 无后代路径时,返回仅包含当前路径的数组,避免返回None引发的异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 08:33:18