首页 > 解决方案 > 如何将 s3SummaryObject 输出到 csv 文件,每一行都在自己的 line-boto3 上

问题描述

我正在尝试将我的 s3objkeys 的输出写入 csv 文件。

当我打印输出时,它看起来像这样:

my/file/path/to2017/.txt,
my/file/path/to2017/.txt,
my/file/path/to2018/.txt,
my/file/path/to2019/.txt,

当我将其写入 csv 文件时,它会单行输出一个:

在此处输入图像描述

这是我的代码:

#Import boto3 module
import boto3
import logging
from botocore.exceptions import ClientError
import csv


#This is to List existing Buckets for the AWS account


#Set key variables

PREFIX = 'shredded/archive/'

bucket='my_bucket'

s3 = boto3.resource('s3',
    aws_access_key_id=ACCESS_KEY,
    aws_secret_access_key=SECRET_KEY
    )

bucket1=s3.Bucket(bucket)

for obj in bucket1.objects.page_size(100):
      if '2017' in obj.key:
        d= str('{}, '.format(obj.key))
        print(d)
        #print('{0}, '.format( obj.key)
        with open('/my/path/2017_V3_files.csv', 'w', newline='') as file:
             writer = csv.writer(file, delimiter=',')
             writer.writerows(d)

我希望 obj.key 输出按行拆分,因此当写入 csv 文件时,每一行都在自己的行上。有什么想法或建议吗?似乎是一个小修复,但我在解决这个问题时遇到了问题。

标签: pythonpython-3.xcsvboto3

解决方案


推荐阅读