在我的 s3 存盤桶中,我有大約 30 個 csv 檔案,分為 3 類。使用我的 lambda,我有興趣選擇其中 8 個屬于類別 1。我使用了下一個問題的回應:Reading multiple csv files from S3 bucket with boto3
所以我制定了下一個代碼:
def read_prefix_to_df(prefix,s3_resource,bucket_name):
bucket = s3_resource.Bucket(bucket_name)
prefix_objs = bucket.objects.filter(Prefix=prefix)
prefix_df = []
for obj in prefix_objs:
key = obj.key
body = obj.get()['Body'].read()
df = pd.DataFrame(body)
prefix_df.append(df)
return prefix_df
在哪里 :
bucket_name='my_bucket'
prefix='folder/data_overview_*.csv'
除了最后的日期之外,所有 8 個檔案的名稱幾乎相同,這就是為什么我使用 * 來選擇與 data_overview_ 相關的所有檔案 不幸的是,回傳的資料框是空的,我應該更改前綴嗎?
uj5u.com熱心網友回復:
前綴不能包含通配符。
你應該使用:
prefix = 'folder/data_overview_`
如果您需要進一步限制為僅 CSV 檔案,則需要if在 Python 代碼中使用陳述句來執行此操作。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/436173.html
標籤:Python 亚马逊网络服务 亚马逊-s3 aws-lambda 字首
上一篇:AWSS3生命周期策略的奇怪行為
