如何使用PowerShell或python脚本读取、编辑或追加存储在Azure Blob Storage中的Excel文



我想写一个Azure Runbook(Powershell, Python),它将读取已经存在于Azure存储帐户中的Excel文件,并附加那里的数据,并将文件保存回存储帐户。

我们可以通过使用blob_service_client获取blob并将数据存储到变量中来实现这一点,如下所示:

blob_client = blob_service_client.get_blob_client(container="newcontainer0805", blob="source.txt")
#SOURCE CONTENTS
content =  blob_client.download_blob().content_as_text

之后,我们可以添加一些列形式的数据,并可以附加它:

#INITIALIZE OUTPUT               
output_str = ""
#STORE COULMN HEADERS
data= list()
data.append(list(["column1", "column2", "column3", "column4"]))

下面是完整的代码,我们可以获得blob的数据,并添加一些内容,并将其保存在相同存储帐户

的其他容器blob中。
import logging
import sys
import os
import azure.functions as func
from azure.storage import blob
from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient, __version__

def main(myblob: func.InputStream):
try:
logging.info(f"Python blob trigger function processed blob n")
CONN_STR = "ADD_CON_STR"
blob_service_client = BlobServiceClient.from_connection_string(CONN_STR)
# MAP SOURCE FILE
blob_client = blob_service_client.get_blob_client(container="newcontainer0805", blob="source.txt")
#SOURCE CONTENTS
content =  blob_client.download_blob().content_as_text

# WRITE HEADER TO A OUT PUTFILE
output_file_dest = blob_service_client.get_blob_client(container="target", blob="target.csv")

#INITIALIZE OUTPUT               
output_str = ""

#STORE COULMN HEADERS
data= list()

data.append(list(["column1", "column2", "column3", "column4"]))
output_str += ('"' + '","'.join(data[0]) + '"n')
output_file_dest.upload_blob(output_str,overwrite=True)
logging.info(' END OF FILE UPLOAD')
except Exception as e:
template = "An exception of type {0} occurred. Arguments:n{1!r}"
message = template.format(type(e).__name__, e.args)
print (message)
if __name__ == "__main__":
main("source.txt")

我们可以根据我们增加内容的要求修改以上代码。

最新更新