我需要在迭代器循环中推进从excel电子表格读取的行的迭代。在
try:
for r in range(insheet.nrows):
cdat = insheet.cell(r, 0).value
if not cdat == xlrd.empty_cell.value:
if hasNumbers(cdat):
#Strip digits to get Client pneumonic
#pdb.set_trace()
if re.sub(r'\d','',cdat) == CLNTID:
#pdb.set_trace()
#This call belongs to this client
memId = cdat
fInCallBlock = True
while fInCallBlock:
#Output this line formatted as CallHeader
#Inc row counter
Can't do this ==> next(r)
cdat = cdat.strip(insheet.cell(r, 0).value)
if cdat == u"Call Resolved":
pdb.set_trace()
fInCallBlock = False
代码在标记为以下内容时崩溃:
^{pr2}$我就是不知道怎么做。在
您可以将
range
分配给一个变量,然后将其推进当然,
range
在python3中是这样工作的。如果仍然在python2下,它将是xrange
请注意,
^{pr2}$r
值不会更改,除非您不仅推进迭代器,而且还将其输出分配给r
:您还应该处理潜在的
StopIteration
异常,该异常可能在推进range
时引发r
是来自range()
的整数,不是迭代器,因此不能对其调用next()
。在您可以使用带计数器的
while
循环,而不是for
循环:相关问题 更多 >
编程相关推荐