在ADLS Gen2中,如何用Python的list_blobs判断Azure Blob是否为目录
判断ADLS Gen2中Blob是否为目录的标准方法(Python)
你当前通过blob.content_settings.content_type is None判断目录的方式并不可靠——确实存在非目录Blob的content_type为None的情况(比如上传时未指定内容类型且SDK未自动推断),而且0长度Blob也可能是用户主动上传的空文件,不能作为目录的判定依据。
针对启用了分层命名空间的ADLS Gen2存储服务,Python SDK提供了标准的判断方式:直接检查BlobItem对象的is_directory布尔属性。这个属性是存储服务返回的专属标识,专门用来区分虚拟目录和文件Blob,准确性有保障。
示例代码:
from azure.storage.blob import ContainerClient # 初始化容器客户端 container_client = ContainerClient.from_connection_string("你的连接字符串", "你的容器名称") # 遍历所有Blob/目录 for blob in container_client.list_blobs(): if blob.is_directory: print(f"{blob.name} 是目录") else: print(f"{blob.name} 是文件Blob")
内容的提问来源于stack exchange,提问作者qwr
相关产品推荐
相关产品推荐

