使用Python从S3下载CSV文件

2024-06-16 11:29:20 发布

您现在位置:Python中文网/ 问答频道 /正文

import os
import boto3
import json
from datetime import datetime,timedelta

s3 = boto3.client('s3', aws_access_key_id="<access_key>",
                    aws_secret_access_key="<secret_key>")
##my_bucket = s3.Bucket('grn-amazon')
filename_withdate=(datetime.now()-timedelta(days=6)).strftime ("%d%b%Y")
filename_withdate = filename_withdate+'_Consolidated.csv'
Source_filename = filename_withdate
dest_filename = filename_withdate
try:
##    s3.download_file('grn-amazon',complt_filename,'01FEB2020_Consolidated.csv')
    s3.download_file('grn-amazon',Source_filename,dest_filename)
    print("Download Completed")
except botocore.exception.ClientErrors as e:
    if e.response['Error']['Code'] == '404':
        print('The Object does not exists!!')
    else:
        raise

运行上述代码后出现以下错误。请帮忙做这件事。。正在将源和目标文件名作为S3属性中的参数传递

在处理上述异常期间,发生了另一个异常:

回溯(最近一次呼叫最后一次): 文件“C:\Cloudtail\CT\SQL Scripts\python\GRN\u S3\u dwnld.py”,第17行,在 除了botocore.exception.ClientErrors作为e: name错误:未定义名称“botocore”


Tags: keyimportawsamazondatetimesecrets3access
2条回答

将以下内容添加到Python程序的顶部:

from botocore.exceptions import ClientError

改变

except botocore.exception.ClientErrors as e:

进入:

except botocore.exception.ClientError as e:

找出一个错误,这不是错误。文件名的大写字母是01FEB2020,我的源文件是01FEB2020

使用upper()功能更改上述日期

filename_withdate=((datetime.now()-timedelta(days=6)).strftime ("%d%b%Y").upper())

感谢您宝贵的时间和回复

相关问题 更多 >