如何使用Azure Storage SDK for Python读取Blob的内容?

时间:2016-11-04 04:55:13

标签: python azure azure-storage-blobs azure-sdk-python

我已将Azure软件包添加到我的Anaconda发行版中,并且还安装了Azure Storage SDK for Python。我正在尝试使用以下方式读取已上传到特定blob容器的文件:

from azure.storage import BlobService
blob_service = BlobService(account_name='azure subscription name',   
account_key='azure subscription key')

blobs = []
marker = None
while True:
   batch = blob_service.list_blobs('vrc', marker=marker, prefix='VRC_')
  blobs.extend(batch)
  if not batch.next_marker:
    break
  marker = batch.next_marker
for blob in blobs:
print(blob.name)

当我运行此脚本时,收到以下错误:

ImportError: No module named 'azure.storage'

如何解决此问题,以便我可以在blob容器中读取文本文件和PDF文件?

2 个答案:

答案 0 :(得分:1)

不太确定您是如何安装存储sdk的,或者您正在使用的版本,但您只需要执行以下操作:

安装:

pip install azure-storage

导入并实例化blob服务:

from azure.storage.blob import BlockBlobService
blob_service = BlockBlobService(account_name="<storagename>",account_key="<storagekey>")

此时,您应该能够列出blob(或下载blob,或者您需要做的任何其他事情)。

答案 1 :(得分:0)

这是一个古老的问题,但由于最近已弃用SDK中的某些代码块而变得有意义。

也请按照以下说明获取具有指定日期的给定容器中的Blob文件列表。

from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient
storageconnectionstring='yourstorageconnectionstring'
blobclient=BlobServiceClient.from_connection_string(storageconnectionstring)
containerclient=blobclient.get_container_client('yourblobcontainername')
for blobs in containerclient.list_blobs():
    print (blobs['name'],": Modified: ",blobs['last_modified'])