我尝试列出 Azure Data Lake Storage 帐户中特定目录内的容器,但似乎没有任何函数可以处理此问题
这是我的层次结构:
> assets
> root
> container1
> container2
> container3
> container4
> container5
我编写了以下函数来获取路径,它显示了所有容器,甚至在containerX内部。我想要实现的只是 asset/root 中容器的名称,而不需要比 containerX 更深的其他容器
import os
from azure.storage.filedatalake import DataLakeServiceClient
connection_string = os.getenv("AZURE_STORAGE_CONNECTION_STRING")
data_lake_service_client = DataLakeServiceClient.from_connection_string(conn_str=connection_string)
filesystem_client = data_lake_service_client.get_file_system_client(file_system="assets")
paths = filesystem_client.get_paths(path="root")
for path in paths:
if path.is_directory:
print("\t" + path.name)
很奇怪没有类似的功能
get_containers(路径=“”) 或者 列表容器(路径=“”)
仅列出它们
请更改以下代码行:
paths = filesystem_client.get_paths(path="root")
到
paths = filesystem_client.get_paths(path="root", recursive=False)
here
,recursive
参数的默认值为True
,这就是您看到子文件夹的原因。