使用 XLRD (python) 从 Google Cloud Storage 读取文件

una*_*ran 0 python google-app-engine xlrd python-2.7 google-cloud-storage

我试图在 GAE 中读取存储在我的一个存储桶中的文件。

该文件存储在公共存储桶中

我试过:

archivo=cloudstorage.open('/bucket/workbook.xlsx')
wb = xlrd.open_workbook(filename=archivo)
Run Code Online (Sandbox Code Playgroud)

但是 xlrd 希望自己打开文件,所以我得到了一个 TypeError

类型错误:强制转换为 Unicode:需要字符串或缓冲区,已找到 ReadBuffer

有没有办法给 xlrd 一个打开的文件,这样我就可以读取文件而不必更改 xlrd.py

una*_*ran 5

在问东西之前,我应该更仔细地阅读文档......

要为 xlrd 提供一个打开的文件,而不是文件名,我必须提供一个文件内容。

这是通过以下方式完成的:

archivo=cloudstorage.open('/bucket/workbook.xlsx')
wb = xlrd.open_workbook(file_contents=archivo.read())
Run Code Online (Sandbox Code Playgroud)