如何使用Boto3在s3存储桶中计算具有特定命名结构的csv文件?

时间:2019-02-08 04:36:28

标签: python-3.x amazon-s3 boto3

我在s3存储桶中有许多不同名称的文件。

我想计算一下我的存储桶中有多少个带有“成员”一词的csv?

但是,成员文件具有如下附加的UUID:

member_asldf2323209.csv

到目前为止,我已经尝试过:

import boto3

# create the s3 resource
s3 = boto3.resource('s3')

# get the file object
obj = s3.Object('bucket_name', 'key')

# read the file contents in memory
file_contents = obj.get()["Body"].read()

# print the occurrences of the new line character to get the number of lines
print file_contents.count('\n')

这只会给我一个没有附加UUID的“成员”文件。

1 个答案:

答案 0 :(得分:1)

如果您希望计算密钥中包含特定单词的对象的数量,则可以使用类似以下内容的方法:

import boto3

s3_client = boto3.client('s3', region_name = 'ap-southeast-2')

listing = s3_client.list_objects_v2(Bucket='my-bucket')

members = [object['Key'] for object in listing['Contents'] if 'member' in object['Key']]
print (members)
print (len(members))