Python Azure Blob直接上载

Python Azure Blob直接上载,python,azure-storage,azure-blob-storage,Python,Azure Storage,Azure Blob Storage,我正在尝试将Azure blob中的csv作为流读取到Python中,并将其直接写回Azure blob。读取操作工作得非常好,但写入输出流只是将一个空文件写入blob。以下代码在打印(df)之前有效,但在打印(df)之后无效 代码如下: 代码: from io import BytesIO, StringIO with BytesIO() as input_blob: with BytesIO() as output_blob: block_blob_service =

我正在尝试将Azure blob中的csv作为流读取到Python中,并将其直接写回Azure blob。读取操作工作得非常好,但写入输出流只是将一个空文件写入blob。以下代码在打印(df)之前有效,但在打印(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)

问题是在
pd.read\u csv
之后,
input\u blob
的光标位于EOF。因此,
copyfileobj
只需将任何内容复制到
output\u blob


您只需在
read\u csv
之后添加
input\u blob.seek(0)
即可解决此问题。

copyfileobj函数的作用是什么?你能编辑你的问题并粘贴它的定义吗?@Saher,copyfileobj将输入流复制到输出流。。我正试图将复制的输出\u blob写入blob存储,但它只写入一个空文件。我认为问题可能是
输入\u blob
的光标在
pd.read\u csv
之后处于EOF。一个
input\u blob.seek(0)
read\u csv
之后可能会有帮助。神奇的Sraw,它可以工作!!最后一个问题。。。如果我必须对dataframe进行一些操作,并将修改后的dataframe作为流写入blob,该怎么办?@Sraw您可以将您的评论移至答案,以帮助更多社区成员查找,谢谢。