【发布时间】:2021-02-28 00:47:26
【问题描述】:
我正在 Azure Functions 环境中使用 matplotlib.pyplot 和 Azure 存储 blob (azure.storage.blob)(不应访问文件系统)。
我的目标是获得一个 blob:
service = blob.BlobServiceClient(account_url="https://mysa.blob.core.windows.net", credential=SA_PRIMARY_KEY)
blob_client = service.get_blob_client(container="mycontainer", blob="myimg.JPG")
blob_data = blob_client.download_blob()
并使用imread 使用pyplot 打开它,例如:
img = plt.imread(blob_data_to_read_opened_stream, format="JPG")
所以我想我错过了一块。获得blob_data 对象后,需要将其内容复制到流中,并将其传递给pyplot
with open("./BlockDestination.jpg", "wb") as blob_stream:
blob_data = blob.download_blob()
blob_data.readinto(blob_stream)
img = plt.imread(blob_stream, format="JPG")
这会失败,因为 imread 需要一个
以读取二进制模式打开的类文件对象
如何在不打开两个不同的流的情况下实现我的目标?
【问题讨论】:
标签: python matplotlib azure-functions azure-storage