我有以下算法来解析整数值的列:
def getddr(ws):
address = []
col_name = 'C'
start_row = 4
end_row = ws.get_highest_row()+1
range_expr = "{col}{start_row}:{col}{end_row}".format(col=col_name, start_row=start_row, end_row=end_row)
for row in ws.iter_rows(range_string=range_expr):
print row
raw_input("enter to continue")
cell = row[0]
if str(cell.value).isdigit:
address.append(cell.value)
else:
continue
return address
这在cell = row[0]
崩溃,说“IndexError:元组索引超出范围”,我不知道这意味着什么。我尝试打印出行以查看其中包含的内容,但它给出的所有内容都是一组空的括号。谁知道我错过了什么?
答案 0 :(得分:3)
要说明问题是什么并不容易,因为您没有尝试处理的输入数据。
但我可以解释一下你得到错误的原因是什么,以及你必须去哪个方向。列表row
包含0个元素(row = []
),因此您无法说row[0]
- 没有行[0]。你必须改变的第一件事是检查,你的清单需要多长时间,以及何时做足够长的其他事情:
for row in ws.iter_rows(range_string=range_expr):
print row
raw_input("enter to continue")
if len(row) > 0:
cell = row[0]
if str(cell.value).isdigit:
address.append(cell.value)
else:
continue
这是你必须要做的第一步。