使用Python获取Azure Data Lake指定目录下的一级子文件夹名称列表
Azure Data Lake 仅获取指定前缀下一级子文件夹的实现方法
Azure Blob SDK 提供的list_blobs接口默认递归返回所有层级路径,你只需要添加delimiter='/'参数即可实现按层级查询,无需自己切割全量路径。
修正后的代码
# 注意前缀不要加开头的斜杠,blob路径以容器根为起点 blobPrefix = "EIM/Sales/Raw/" level1_folders = [] # 传入delimiter参数指定按/拆分目录层级,仅查询当前前缀下的一级内容 blob_list = container_client.list_blobs(name_starts_with=blobPrefix, delimiter='/') for item in blob_list: # 子目录会带有prefix属性,直接提取即可 if hasattr(item, 'prefix'): # 移除公共前缀和末尾的斜杠,仅保留一级文件夹名称 folder_name = item.prefix.removeprefix(blobPrefix).rstrip('/') level1_folders.append(folder_name) # 输出结果格式和要求完全一致 print(level1_folders)
兼容性说明
如果使用的Python版本低于3.9,不存在removeprefix方法,可以替换为切片写法:
folder_name = item.prefix[len(blobPrefix):].rstrip('/')
输出效果
运行后直接得到结果:['APXTConga4__Composer_Setting__mdt', 'Account']
内容的提问来源于stack exchange,提问作者yogesh sasanapuri
相关产品推荐
相关产品推荐

