我正在尝试将Azure blob中的csv作为流读取到Python中,然后直接将其写回Azure blob。读取操作完全正常,但写入输出流只是将空文件写入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)
答案 0 :(得分:0)
问题是在activity_ids
之后,pd.read_csv
的光标位于EOF。因此input_blob
只需将任何内容复制到copyfileobj
。
您只需在output_blob
之后添加input_blob.seek(0)
即可解决此问题。