gpt4 book ai didi

python - 如何在不使用 Pandas 的情况下从 s3 存储桶获取 excel 文件并将文件再次上传到 s3 存储桶 - Python

转载 作者:行者123 更新时间:2023-12-04 20:02:00 26 4
gpt4 key购买 nike

我想用 s3.get_object 函数获取一个 excel 文件,并通过 s3.put_object 函数将该文件上传回 s3 存储桶中的临时位置。我不想使用 pandas 库或不想在此过程之间创建 pandas 数据框。
到目前为止我使用的代码是:

s3 = boto3.client('s3')
bucket = 'mybucket'
key_obj = 'name of the file.xlsx'


file_obj = s3.get_object(Bucket = bucket, Key = key_obj)
file_con = file_obj.read().decode('utf-8')
file_data = io.StringIO(file_con)


s3.put_object(file_data, Bucket=bucket, 'tmp' + '\filename.xlsx')

此代码无法正确读取 excel 文件。有了这个我得到了一个错误:

UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 15-16: invalid continuation byte
当我将解码从“utf-8”更改为“ISO-8859-1”时。此错误已删除,但写入 tmp 文件夹中的文件不是可读格式,甚至没有打开。
请建议。谢谢

最佳答案

您的代码是 充满错误 ,因此不清楚您真正想要做什么。但要使其成为正确下载和上传文件的有效 python 代码,它应该是:

s3 = boto3.client('s3')

bucket = 'mybucket'
key_obj = 'name of the file.xlsx'

file_obj = s3.get_object(Bucket = bucket, Key=key_obj)
file_con = file_obj['Body'].read()
file_data = io.BytesIO(file_con)

s3.put_object(Body=file_data, Bucket=bucket, Key='tmp' + '/filename.xlsx')

关于python - 如何在不使用 Pandas 的情况下从 s3 存储桶获取 excel 文件并将文件再次上传到 s3 存储桶 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69908362/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com