Python 如何在容器中获取所有级别的所有水滴?

Python 如何在容器中获取所有级别的所有水滴?,python,azure,azure-storage-blobs,Python,Azure,Azure Storage Blobs,我找到了关于在容器中列出blob的线程 from azure import * from azure.storage import * blob_service = BlobService(account_name='<accountname>', account_key='<accountkey>') next_marker = None while True: blobs = blob_service.list_blobs('<containernam

我找到了关于在容器中列出blob的线程

from azure import *
from azure.storage import *

blob_service = BlobService(account_name='<accountname>', account_key='<accountkey>')
next_marker = None
while True:
    blobs = blob_service.list_blobs('<containername>', maxresults=100, marker=next_marker)
    next_marker = blobs.next_marker
    print(next_marker)
    print(len(blobs))
    if next_marker is None:
        break
print "done"
从azure导入*
从azure.storage导入*
blob\u服务=blob服务(帐户名称=“”,帐户密钥=“”)
下一个标记=无
尽管如此:
blob=blob\u服务。列出\u blob(“”,maxresults=100,marker=next\u marker)
下一个标记=水滴。下一个标记
打印(下一个标记)
打印(透镜(斑点))
如果下一个_标记为无:
打破
打印“完成”

但是,这只会列出特定容器中的blob。我将如何获取子文件夹中的所有blob?我有几个级别的子文件夹,我想从父容器中获取所有数据文件的名称

您发布的代码无效

from azure import *
from azure.storage import *

blob_service = BlobService(account_name='<accountname>', account_key='<accountkey>')
next_marker = None
while True:
    blobs = blob_service.list_blobs('<containername>', maxresults=100, marker=next_marker)
    next_marker = blobs.next_marker
    print(next_marker)
    print(len(blobs))
    if next_marker is None:
        break
print "done"
下面是使用MicrosoftAzure SDK for Python 3.4的Python代码,该代码将列出特定容器中的所有blob名称(带有完整的“子文件夹”路径,例如project1/images/image1.png)

如果您希望获取存储帐户中所有容器中的所有blob名称,只需执行
blob\u服务。列出容器
即可遍历每个容器并列出每次迭代下的所有blob

这也是一篇关于如何使用Python中的Azure Blob存储的有用文章

希望这有帮助

from azure.storage.blob import BlobService

blob_service = BlobService(account_name='<storage account name>', account_key='<storage account key>')

blobs = []
marker = None
while True:
    batch = blob_service.list_blobs('<blob container name>', marker=marker)
    blobs.extend(batch)
    if not batch.next_marker:
        break
    marker = batch.next_marker
for blob in blobs:
    print(blob.name)
从azure.storage.blob导入BlobsService
blob\u服务=blob服务(帐户名称=“”,帐户密钥=“”)
水滴=[]
标记=无
尽管如此:
批处理=blob\u服务。列出\u blob(“”,marker=marker)
blobs.extend(批处理)
如果不是batch.next_标记:
打破
标记=批处理。下一个标记
对于blob中的blob:
打印(blob.name)

有一个函数
list\u containers()
我们可以看到在存储中获取所有容器的目的

import azure
from azure.storage.blob import BlobService

blob_service = BlobService(account_name='<account_name>', account_key='<account_key>')
containers = blob_service.list_containers()

for c in containers:
    print(c.name)
导入azure
从azure.storage.blob导入BlobsService

blob_服务=BlobService(account_name='打开以便您可以参考。

子文件夹是什么意思?这应该列出容器中的所有blob。您是否正在使用适用于Phython 2.7或3.4的Microsoft Azure SDK?您的意思是要获取所有blob容器和所有blob,而不是仅获取特定容器中的blob?上面的代码将列出blob中的所有blob容器。我相信OP希望在blob容器内的子文件夹中列出blob。这对我有所帮助,但我可以导入
BlobbService
,必须更改为
BlobbService
@BartC;这里有相同的问题。我无法导入BlobbService(在卸载Azure并重新安装Azure后也不能导入).你是如何用BlocBlobservice解决的?