使用 Python 和 Boto3 从 S3 读取多个 CSV 文件
Reading multiple CSV files from S3 using Python with Boto3
我能够在 python 中使用 boto3 从 S3 存储桶中读取多个 csv 文件,并最终将这些文件合并到 pandas.However 中的单个数据框中,在某些文件夹中有一些空文件导致错误“没有要从文件中解析的列”。我们可以跳过下面代码中的那些空文件吗?
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)
我用过这个答案 [
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
我能够在 python 中使用 boto3 从 S3 存储桶中读取多个 csv 文件,并最终将这些文件合并到 pandas.However 中的单个数据框中,在某些文件夹中有一些空文件导致错误“没有要从文件中解析的列”。我们可以跳过下面代码中的那些空文件吗?
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)
我用过这个答案 [
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