Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python EmptyDataError:从S3 bucket到Dataframe读取多个csv文件时,没有要从文件中解析的列_Python_Pandas_Amazon Web Services_Csv_Amazon S3 - Fatal编程技术网

Python EmptyDataError:从S3 bucket到Dataframe读取多个csv文件时,没有要从文件中解析的列

Python EmptyDataError:从S3 bucket到Dataframe读取多个csv文件时,没有要从文件中解析的列,python,pandas,amazon-web-services,csv,amazon-s3,Python,Pandas,Amazon Web Services,Csv,Amazon S3,我有一个源s3存储桶,其中有大约500个csv文件,我想将这些文件移动到另一个s3存储桶,在移动之前,我想清理数据,所以我尝试将其读取到一个数据帧。我的代码工作正常,返回一些文件的数据帧,然后突然中断,并给出错误“EmptyDataError:No columns to parse from file” 提前谢谢 您的文件大小为零。使用paginator而不是os.path.getsize(文件)进行如下检查: import boto3 client = boto3.client('s3',

我有一个源s3存储桶,其中有大约500个csv文件,我想将这些文件移动到另一个s3存储桶,在移动之前,我想清理数据,所以我尝试将其读取到一个数据帧。我的代码工作正常,返回一些文件的数据帧,然后突然中断,并给出错误“EmptyDataError:No columns to parse from file


提前谢谢

您的文件大小为零。使用paginator而不是os.path.getsize(文件)进行如下检查:

import boto3

client = boto3.client('s3', region_name='us-west-2')
paginator = client.get_paginator('list_objects')
page_iterator = paginator.paginate(Bucket='my-bucket')
filtered_iterator = page_iterator.search("Contents[?Size > `0`][]")
for key_data in filtered_iterator:
    print(key_data)

手动下载坏文件并查看感谢您的回复,您能告诉我如何根据文件夹路径提取代码结果中的密钥吗?bucket='bucket'文件夹路径='path'def get_s3_keys(bucket,folder_path):keys=[]paginator=client.get_paginator('list_objects'))page_iterator=paginator.paginate(Bucket=Bucket)filtered_iterator=page_iterator.search(“内容[?大小>0
][])在filtered_iterator中搜索obj['Contents']:Key.append(obj['Key'])返回密钥文件=获取s3密钥(Bucket,文件夹路径)打印(文件)
import boto3

client = boto3.client('s3', region_name='us-west-2')
paginator = client.get_paginator('list_objects')
page_iterator = paginator.paginate(Bucket='my-bucket')
filtered_iterator = page_iterator.search("Contents[?Size > `0`][]")
for key_data in filtered_iterator:
    print(key_data)