我很难导入存储在 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/