Python Azure Blob直接上载
我正在尝试将Azure blob中的csv作为流读取到Python中,并将其直接写回Azure blob。读取操作工作得非常好,但写入输出流只是将一个空文件写入blob。以下代码在打印(df)之前有效,但在打印(df)之后无效 代码如下: 代码: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 =
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您可以将您的评论移至答案,以帮助更多社区成员查找,谢谢。