python-3.x - 如何读取存储在azure blob存储中的.py文件中的变量

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

我很难导入存储在 azure blob 存储中的 .py 文件中的变量。我能够下载该文件并将内容作为字符串读取,但无法找到一种方法将该文件视为 .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 相同的操作,以便我可以使用文件中存储的数据?

最佳答案

我认为直接从流变量导入或从 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)

关于python-3.x - 如何读取存储在azure blob存储中的.py文件中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68041682/

相关文章:

azure - Azure Blob 存储中的生存时间如何工作?

Azure 存储日志未清除

python - 为什么函数可以改变外部的对象?

azure - azure 上的 umbraco 中的 url 重写

azure - azure SDK 缺少 Microsoft.Threading.Tasks

azure - 使用专用终结点创建函数应用和存储帐户时出现 Terraform 403 错误

python - 字典在迭代期间改变大小

python - 对从Python中的对象获取值感到困惑

python-3.x - 用 NaN 填充条件后的值

azure - 复制前删除 Azure Blob 内容