【问题标题】:How to read variable stored in .py file in azure blob storage如何在 azure blob 存储中读取存储在 .py 文件中的变量
【发布时间】:2021-09-03 13:49:46
【问题描述】:

我很难导入存储在 .py 文件中的变量,该文件存储在 azure blob 存储中。我能够下载文件并将内容作为字符串读取,但无法找到将文件视为 .py 文件并从中导入变量的方法。我的代码如下所示:

from azure.storage.blob import BlobServiceClient
blob_service = BlobServiceClient(account_url="<url>", credential="<key>")
client = blobService.get_blob_client(container='<container>', blob='file.py')
file = client.download_blob()
bytes_string = file.readall()

如果我打印 bytes_string,它会给我类似 b'x = 2' 的信息。有没有办法我可以做相当于import x from file.py 的方法,以便我可以处理文件中存储的数据?

【问题讨论】:

    标签: python-3.x azure azure-blob-storage


    【解决方案1】:

    我不认为直接从您的流变量导入或从 readall() 导入字符串是可能的,因为据我所知,导入是在文件系统项目结构中寻找模块。唯一的方法是保存文件并导入它。这行得通(我必须在开始时添加一些额外的东西以确保模块路径为我正确解析):

    import os
    import sys
    sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
    from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient, __version__
    
    download_file_path = "download.py"
    blob_service = BlobServiceClient(account_url="<url", credential="<key>")
    client = blob_service.get_blob_client(container='<container>', blob='file.py')
    
    with open(download_file_path, "wb") as download_file:
        download_file.write(client.download_blob().readall())
    
    from download import *
    print(x)
    

    【讨论】:

      猜你喜欢
      • 2021-01-31
      • 2012-05-20
      • 2012-06-16
      • 1970-01-01
      • 2021-10-18
      • 1970-01-01
      • 1970-01-01
      • 2017-07-16
      • 2018-01-10
      相关资源
      最近更新 更多