我是Python的菜鳥。我有一個需求,我已經研究了好幾天了。要求如下。
我有一個S3位置,在那里我有一些未格式化的資料的Excel表。我正在撰寫一個 lambda 函式來格式化并將其轉換為 csv 格式。現在我已經有了這方面的代碼,但它在本地機器上作業,我從本地目錄中挑選excel檔案,對它們進行格式化/轉換,并將它們放到目標檔案夾中。我們正在使用openpyxl包進行轉換。現在我把它遷移到AWS,問題來了。源檔案和目標檔案將不是本地目錄,而是s3位置。
資料轉換邏輯過于冗長,我真的不想重寫它們。
我是否有辦法處理這些 excel 檔案,就像我們在本地機器上做的那樣。
例如,
wb = openpyxl.load_workbook('C:User est.xlsx, data_only=True)
我怎樣才能用python重新創建這個陳述句或它在lambda中的作用呢?
uj5u.com熱心網友回復:
你可以用BytesIO這樣做:
file = readS3('test.xlsx') # load file with Boto3
wb = openpyxl.load_workbook(BytesIO(file), data_only=True)
以readS3()為例,可以這樣實作:
import boto3
bucket = #bucket name[/span]。
def readS3(file)。
s3 = boto3.client('s3')
s3_data = s3.get_object(Bucket=bucket, Key=file)
return s3_data['Body'/span>].read()
像這樣配置Boto3: https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/319185.html
標籤:
