我需要在仍處於迭代器循環內部的情況下推進從Excel和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
代碼崩潰,其中註明:
-> next(r)
(Pdb++) n
TypeError: 'int object is not an iterator'
,我只是不能找出如何做到這一點。
在Python 2'xrange'不是一個迭代器,你必須明確地將其定義爲這樣'myrange = ITER(x範圍(insheet.rows))' –
謝謝。我不夠清楚。 – mementum
另外,你確定'range'是python 3中的一個迭代器嗎?我只在這臺機器上安裝了Python 2,所以我無法測試它,但我認爲你也需要將它定義爲這樣: –