Python从S3存储桶读取文件

时间:2020-08-28 12:06:06

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

我想读取.csv和text.txt文件作为函数的两个输入,而无需显式传递文件名,因为我将有多个csv和文本,并且希望在它们上循环。我使用的代码

s3 = boto3.resource('s3')

bucket = s3.Bucket('textractpipelinestack-documentsbucket9ec9deb9-1rm7fo8ds7m69')

for obj in bucket.objects.all():
    key = obj.key
    body = obj.get()['Body'].read()
    print(key)

print(key)给我文件的名称,但是我不确定如何读取它们,以便将它们作为输入传递。我已经附加了print(key)的图像,想阅读“ tables.csv”和“ text.txt”。任何人都可以帮忙吗?..

enter image description here

1 个答案:

答案 0 :(得分:1)

以下内容将从S3存储桶中的所有csv或txt文件中读取文件内容。您可以建立逻辑来捕获数据,以供在我创建打印语句时输入。

file_list = [f for f in bucket.objects.all() if f.key[-3:] == 'csv' or f.key[-3:] == 'txt']

for file in file_list:
    print(file.get()['Body'].read().decode(encoding="utf-8", errors="ignore"))