使用 Jupyter Notebook 从存储在带有 python 的 azure 容器中

我已将 zip 文件作为 azure 容器中的 blob 上传到我的 azure 帐户中。Zip 文件包含 .csv、.ascii 文件和许多其他格式。我需要读取特定文件,比如说包含在 zip 文件中的 ascii 文件数据。我在这种情况下使用 python。


如何从该 zip 文件中读取特定文件数据而不将其下载到本地?我只想在内存中处理这个过程。


我也在尝试使用 azure 提供的 jypyter notebook 来实现 ML 功能,我在这种情况下使用了 ZipFile python 包。


请求您协助此事阅读文件


请找到以下代码片段。


blob_service=BlockBlobService(account_name=ACCOUNT_NAME,account_key=ACCOUNT_KEY)

blob_list=blob_service.list_blobs(CONTAINER_NAME)


allBlobs = []

for blob in blob_list:

    allBlobs.append(blob.name)

sampleZipFile = allBlobs[0]

print(sampleZipFile) 


陪伴而非守候
浏览 168回答 2
2回答

哆啦的时光机

下面的代码应该可以工作。此示例使用帐户 URL 和密钥组合访问 Azure 容器。from azure.storage.blob import BlobServiceClientfrom io import BytesIOfrom zipfile import ZipFilekey = r'my_key'service = BlobServiceClient(account_url="my_account_url",                            credential=key                            )container_client = service.get_container_client('container_name')zipfilename = 'myzipfile.zip'blob_data = container_client.download_blob(zipfilename)blob_bytes = blob_data.content_as_bytes()inmem = BytesIO(blob_bytes)myzip = ZipFile(inmem)otherfilename = 'mycontainedfile.csv'filetoread = BytesIO(myzip.read(otherfilename))现在您要做的就是将filetoread传递给您通常用来读取本地文件的任何方法(例如pandas.read_csv())

白板的微信

您可以使用以下代码读取 .zip 文件中的文件,而无需在 python 中提取import zipfilearchive = zipfile.ZipFile('images.zip', 'r')imgdata = archive.read('img_01.png')有关详细信息,您可以在此处参考 ZipFile 文档或者,你可以做这样的事情- - 编码:utf-8 - -""" 创建于 2019 年 4 月 1 日星期一 11:14:56@author: moverm """import zipfilezfile = zipfile.ZipFile('C:\\LAB\Pyt\sample.zip')for finfo in zfile.infolist():    ifile = zfile.open(finfo)    line_list = ifile.readlines()    print(line_list)这是相同的输出
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python