如何使用python从S3读取和写入Excel工作表?

时间:2017-08-02 16:50:00

标签: python python-3.x amazon-web-services amazon-s3 openpyxl

我在S3中有一个excel文件。我的目标是读取该文件,处理并将其写回。我一直在使用openpyxl来实现它的读写部分,它在本地工作。但是,当文件位于S3时,同样不起作用。

目前的架构如下。调用我的烧瓶应用程序,其中S3中文件的URL作为参数传递。参数读取如下。

url = request.args.get('url')

如果是csv文件;以下工作

pandas.read_csv(url)

但在处理xlsx文件时,以下(使用openpyxl):

file = load_workbook(filename = url)
corpus = file['Sheet']

给我以下错误:

FileNotFoundError: [Errno 2] No such file or directory: 's3.amazonaws.com/data-file/prod/projects/Methane__-oil_and_gas-_-_Sheet1.xlsx'

如何解决此问题并从S3读取此文件。此外,在完成处理后,如何将其写回S3。

1 个答案:

答案 0 :(得分:0)

你可以在pandas.read_csv中传递一个网址,因为它会自动识别网址,但看起来这个网址没有你错误的协议。

网址应为https://s3.amazonaws.com/data-file/prod/projects/Methane__-oil_and_gas-_-_Sheet1.xlsx

尝试在网址前附加https://,看看会发生什么。