带有Python的空白Azure Blob

带有Python的空白Azure Blob,python,azure,azure-storage-blobs,Python,Azure,Azure Storage Blobs,我只想从Azure存储下载一个excel blob,进行一些修改,然后使用Azure Python SDK v12以新名称上传它。我在这里发现了几个关于使用v2.x和blockblobservice模块的问题。但这在v12中不可用。另外一个限制是,我不想在本地使用任何东西,因为这是无服务器应用程序的一部分 以下是我的代码和符号: from azure.storage.blob import BlobClient import io import pandas as pd #Download B

我只想从Azure存储下载一个excel blob,进行一些修改,然后使用Azure Python SDK v12以新名称上传它。我在这里发现了几个关于使用v2.x和blockblobservice模块的问题。但这在v12中不可用。另外一个限制是,我不想在本地使用任何东西,因为这是无服务器应用程序的一部分

以下是我的代码和符号:

from azure.storage.blob import BlobClient
import io
import pandas as pd

#Download Blob: works fine
download_client=BlobClient.from_connection_string(
        conn_str=az_str, 
        container_name=container_name, 
        blob_name=blob_name) 
read = io.BytesIO()
download_stream = download_client.download_blob()
df = pd.read_excel(download_stream.readall())

#Make arbitrary changes: works fine
df_new = df.append(df)
print(df_new)

#Upload Blob: blob is empty
new_blob_name=f'UploadTest.xlsx'
upload_client = BlobClient.from_connection_string(
        conn_str=az_str, 
        container_name=container_name, 
        blob_name=new_blob_name)

write = io.BytesIO()
df_new.to_excel(write, sheet_name='Test Sample') 
upload_client.upload_blob(write, blob_type="BlockBlob", overwrite=True)

请尝试将流的位置设置为
0
。比如:

write = io.BytesIO()
df_new.to_excel(write, sheet_name='Test Sample')
write.seek(0)
upload_client.upload_blob(write, blob_type="BlockBlob", overwrite=True)

谢谢,成功了!我有一个额外的问题,可能不值得再发一篇文章,是否可以在同一本excel手册中添加一张额外的表格来完成上述工作?我建议将此作为一个单独的问题提问。