reader
создается перед вашим for
циклом и является итератором. Каждый раз, когда вы достигаете линии for
, итерация будет продолжаться там, где она остановилась. Как только вы достигнете конца reader
, следующие for
петли будут пустыми.
Вы можете увидеть, что происходит в этом коротком примере:
l = [0, 1, 2, 3, 4, 5]
iterator = iter(l)
for i in range(0, 16, 2):
print('i:', i, "- starting the 'for j ...' loop")
for j in iterator:
print('iterator:', j)
if j == i:
break
i: 0 - starting the 'for j ...' loop
iterator: 0
i: 2 - starting the 'for j ...' loop
iterator: 1
iterator: 2
i: 4 - starting the 'for j ...' loop
iterator: 3
iterator: 4
i: 6 starting the 'for j ...' loop
iterator: 5
i: 8 starting the 'for j ...' loop
i: 10 starting the 'for j ...' loop
i: 12 starting the 'for j ...' loop
i: 14 starting the 'for j ...' loop
Каждый раз, когда выполняется цикл for
, он продолжает выполнять итерацию на iterator
, где он остановился ранее. Как только итератор исчерпан, циклы for j...
пусты.
Вы должны перезапустить его в каждом цикле:
for row in csv.reader(myFile):
....
или составить список:
reader = list(csv.reader(myFile))
....
for row in reader:
....