Python 3.x Python-从AWS S3下载当前日期的文件

Python 3.x Python-从AWS S3下载当前日期的文件,python-3.x,amazon-s3,boto3,Python 3.x,Amazon S3,Boto3,我目前正在使用下面的python脚本将数据从AWS S3下载到我的本地服务器。我唯一的问题是,当我运行此程序时,我必须手动输入需要下载文件的确切文件夹。我使用的S3存储桶每天都会创建一个新文件夹,我只想从当前文件夹下载文件。我尝试使用系统日期创建一个变量,并尝试将其传递到bucket list变量中,但脚本没有执行任何操作,也没有抛出错误。谁能帮我一下吗 import boto, os import datetime from os import path current_date = dat

我目前正在使用下面的python脚本将数据从AWS S3下载到我的本地服务器。我唯一的问题是,当我运行此程序时,我必须手动输入需要下载文件的确切文件夹。我使用的S3存储桶每天都会创建一个新文件夹,我只想从当前文件夹下载文件。我尝试使用系统日期创建一个变量,并尝试将其传递到bucket list变量中,但脚本没有执行任何操作,也没有抛出错误。谁能帮我一下吗

import boto, os
import datetime
from os import path

current_date = datetime.datetime.now().strftime("%Y-%m-%d")


LOCAL_PATH = '/Users/user/Desktop/rep'

AWS_ACCESS_KEY_ID = 'ACCESS'
AWS_SECRET_ACCESS_KEY = 'SECRET'
bucket_name = 'bucket'

# connect to the bucket
conn = boto.connect_s3(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
bucket = conn.get_bucket(bucket_name)


# go through the list of files
bucket_list = bucket.list(prefix='Nation/State/City/2018-05-01')
#bucket_list = bucket.list(prefix='Nation/State/City/current_date')

#bucket_list = bucket.list()
for l in bucket_list:
  keyString = str(l.key)
  d = LOCAL_PATH + keyString
  try:
    l.get_contents_to_filename(d)
  except OSError:
  # check if dir exists
    if not os.path.exists(d):
    os.makedirs(d)

谢谢..

您的Python代码不符合您的要求

错误在这里:

bucket_list = bucket.list(prefix='Nation/State/City/current_date')
在此上下文中,
current\u data
只是一个包含单词
current\u data
的字符串。要解决此问题,应将上面的行更改为:

bucket_list = bucket.list(prefix='Nation/State/City/{}'.format(current_date))
此行将选取
current_date
变量的值,并将其设置在前缀字符串中,替换
{}

我还建议您查看此链接:
.

此外,请注意如何定义“当前日期”。这是基于时区,即第二天开始的时间。例如,澳大利亚的当前日期比美国的当前日期晚几个小时。默认情况下,Amazon EC2实例在UTC时区上运行,您可能需要相应地进行调整。