Более традиционный способ записи этого цикла:
for row_index, row in enumerate(csv.DictReader(items_file, dialect='excel', delimiter='\t')):
if (row_index >= 200):
break
rows.append(row)
Как только счетчик строк достигнет 200, мы выйдем из цикла.
Чтобы использовать while
цикл вместо цикла for
(обратите внимание, что в качестве циклической конструкции while
является альтернативой for
, а не if
), необходимо выполнить итератор вручную:
itr = enumerate(csv.DictReader(items_file, dialect='excel', delimiter='\t'))
row_index = -1
while row_index < 199:
try:
row_index, row = next(itr) # Python 3. Use itr.next() in Python 2
except StopIteration:
break # Ran out of data
rows.append(row)
С учетом всего вышесказанного, в модуле itertools
имеется превосходная альтернатива обеим этим опциям:
from itertools import islice
itr = csv.DictReader(items_file, dialect='excel', delimiter='\t')
rows = list(islice(itr, 200))