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

Azure ADLS Gen2如何仅列出指定目录顶层的文件?

获取Azure Data Lake指定目录下的直接文件

问题描述

使用以下代码获取容器中子目录的文件时,get_paths()会返回目录a/b/c下所有子目录中的文件和文件夹,但仅需要目录c本身的文件:

from azure.storage.filedatalake import DataLakeServiceClient
remote_paths = service_client.get_file_system_client("mycontainer").get_paths(path="a/b/c")

已知可以通过is_directory属性区分文件和目录,但该方法仍会返回子目录中的内容;也可以通过检查路径字符串判断是否属于子文件夹,但希望找到更优的实现方式。

最优解决方案

get_paths()方法默认开启递归遍历(recursive=True),只需将该参数设置为False,就能仅获取指定目录下的直接内容,再通过is_directory过滤掉目录项即可得到目标文件:

from azure.storage.filedatalake import DataLakeServiceClient

# 初始化service_client后执行以下操作
file_system_client = service_client.get_file_system_client("mycontainer")
# 关闭递归,仅获取a/b/c目录下的直接内容
remote_paths = file_system_client.get_paths(path="a/b/c", recursive=False)
# 过滤出当前目录下的文件(排除子目录)
target_files = [path for path in remote_paths if not path.is_directory]

方案优势

  • 直接通过API参数控制遍历范围,无需手动解析路径字符串,代码更简洁可靠
  • 减少不必要的遍历请求,提升执行效率,避免处理冗余的子目录内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 16:32:03