Python Azure Blob 直接上传

Ang*_*Sen 2 python azure-storage azure-blob-storage

我正在尝试将 csv 作为流从 Azure blob 读取到 Python 中,然后直接将其写回 Azure blob。读取操作工作得很好,但写入输出流只是将一个空文件写入 blob。以下代码在 print(df) 之前有效,但在那之后就无效。

下面是代码:

代码:

from io import BytesIO, StringIO

with BytesIO() as input_blob:   

  with BytesIO() as output_blob:

    block_blob_service = BlockBlobService(account_name='aaaccc', account_key='*/*/*--')

    block_blob_service.get_blob_to_stream('test', 'Source.csv', input_blob)

    input_blob.seek(0)

    df=pd.read_csv(input_blob)

    print(df)

    copyfileobj(input_blob, output_blob)

    block_blob_service.create_blob_from_stream('test', 'OutFilePy.csv', output_blob)
Run Code Online (Sandbox Code Playgroud)

Sra*_*raw 5

问题是pd.read_csv,在 后,光标input_blob位于 EOF 处。因此copyfileobj,只需将任何内容复制到output_blob.

您只需添加一个input_blob.seek(0)afterread_csv即可解决此问题。