【问题标题】:Reading multiple CSV files from S3 using Python with Boto3使用 Python 和 Boto3 从 S3 读取多个 CSV 文件
【发布时间】:2021-05-22 10:13:03
【问题描述】:

我可以在 python 中使用 boto3 从 S3 存储桶中读取多个 csv 文件,最后将这些文件合并到 pandas 的单个数据框中。但是,在某些文件夹中有一些空文件会导致错误“没有列从文件中解析”。我们可以跳过下面代码中的那些空文件吗?

s3 = boto3.resource('s3')
bucket = s3.Bucket('testbucket')

prefix_objs = bucket.objects.filter(Prefix="extracted/abc")

    prefix_df = []

for obj in prefix_objs:
    key = obj.key
    body = obj.get()['Body'].read()
    temp = pd.read_csv(io.BytesIO(body),header=None, encoding='utf8',sep=',')        
    prefix_df.append(temp)

我已经使用了这个答案 [https://stackoverflow.com/questions/52855221/reading-multiple-csv-files-from-s3-bucket-with-boto3][1]

【问题讨论】:

  • 或许在.read()这一行之后,可以查看body的长度?

标签: python csv amazon-s3 boto3 amazon-sagemaker


【解决方案1】:
s3 = boto3.resource('s3')
bucket = s3.Bucket('testbucket')

prefix_objs = bucket.objects.filter(Prefix="extracted/abc")

prefix_df = []

for obj in prefix_objs:
    try:
        key = obj.key
        body = obj.get()['Body'].read()
        temp = pd.read_csv(io.BytesIO(body),header=None, encoding='utf8',sep=',')        
        prefix_df.append(temp)
    except:
        continue

【讨论】:

    猜你喜欢
    • 2019-03-22
    • 2017-04-21
    • 1970-01-01
    • 2019-09-14
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多