我想在GAE中使用python xlrd读取大小为4 MB的文件。
我从Blobstore获取文件。使用的代码如下。
book = xlrd.open_workbook(file_contents=temp_file)
sh = book.sheet_by_index(0)
for col_no in range(sh.ncols):
它给了我DeadlineExceededError。
book = xlrd.open_workbook(file_contents=file_data)
File "/base/data/home/apps/s~appid/app-version.369475363369053908/xlrd/__init__.py", line 416, in open_workbook
ragged_rows=ragged_rows,
File "/base/data/home/apps/s~appid/app-version.369475363369053908/xlrd/xlsx.py", line 756, in open_workbook_2007_xml
x12sheet.process_stream(zflo, heading)
File "/base/data/home/apps/s~appid/app-version.369475363369053908/xlrd/xlsx.py", line 520, in own_process_stream
for event, elem in ET.iterparse(stream):
DeadlineExceededError
但我能够读取较小尺寸的文件。
实际上我只需要获取文件的前几行(30到50)。除了将其作为任务添加并使用渠道API获取详细信息以获取详细信息而导致截止日期错误之外,还有其他任何方法吗?
我可以做些什么来处理这个......?
答案 0 :(得分:0)
我读了一个大约1000行excel的文件,它可以正常使用库。 我留下了一个可能有用的链接https://github.com/cjhendrix/HXLator-SpaceAppsVersion/blob/master/gae/main.py
代码我看到这些列和行的交叉必须是每行的列表
示例:
wb = xlrd.open_workbook(file_contents=inputfile.read())
sh = wb.sheet_by_index(0)
for rownum in range(sh.nrows):
val_row = sh.row_values(rownum)
#here print element of list
self.response.write(val_row[1]) #depending for number for columns
问候!!!