如何使用Pandas列出s3存储桶中的所有csv文件?

iqjalb3h  于 2023-04-04  发布在  其他
关注(0)|答案(1)|浏览(169)

我有下面的代码,拉在所有的文件夹名称以及文件名从特定的S3桶。如何修改这一点,使它可以只读文件,以“.csv”结束,而不是所有的文件夹名称?

def lambda_handler(event, context):
    s3_client = boto3.client("s3")
    bucket_name = "dump"
    response = s3_client.list_objects_v2(Bucket=bucket_name)
    files = response.get("Contents")
    for file in files:
        print(f"file_name: {file['Key']}")

电流输出:

file_name: 2023/
file_name: 2023/Feb/
file_name: 2023/Feb/file1.csv
file_name: 2023/Jan/
file_name: 2023/Jan/file2.csv
file_name: 2023/Mar/
file_name: 2023/Mar/file3.csv

但是,我只想列出这些sv文件。所以我希望输出为:

file_name: 2023/Feb/file1.csv
file_name: 2023/Jan/file2.csv
file_name: 2023/Mar/file3.csv

怎么做?我试过用“endswith”,但是不管用。有什么帮助吗?

hc8w905p

hc8w905p1#

在这里,我更喜欢使用与客户端方法相比提供更高抽象级别的资源。

def handler(event, context):
    s3 = boto3.resource('s3')
    bucket = s3.Bucket('dump')

    for obj in bucket.objects.filter(Prefix='2023'):
        if obj.key.endswith('.csv'):
            pass

相关问题