Python Azure Blob Direct Upload

Я пытаюсь прочитать csv из BLOB-объекта Azure в Python как поток и записать его обратно в BLOB-объект Azure напрямую. Операция чтения отлично работает, но запись потока вывода просто записывает пустой файл в BLOB-объект. Следующий код работает до печати (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)

1 ответ

Решение

Проблема в том, что после pd.read_csv, курсор input_blob в EOF. Так copyfileobj просто ничего не копировать output_blob,

Вы можете просто добавить input_blob.seek(0) после read_csv чтобы исправить эту проблему.

Другие вопросы по тегам