2013-12-07 5 views
0

Я пытаюсь подсчитать строки в файле до тех пор, пока не будет как минимум 5 строк, а затем прекратите подсчет.Почему этот цикл Python while не работает?

Я не могу понять, почему этот простой while цикл, кажется, генерируя бесконечный цикл:

row_count = 0 
    while row_count <= 5: 
     for row in file_reader: 
      row_count += 1 
+0

Длина переменной file_reader может быть 0. – user1781498

ответ

2

Цикл for будет работать до завершения первой до while получает шанс испытать row_count.

Перерыв из for петли вместо:

row_count = 0 
for row in file_reader: 
    row_count += 1 
    if row_count > 5: 
     break 

Вы можете использовать enumerate() для создания счетчика:

for row_count, row in enumerate(file_reader): 
    if row_count > 5: 
     break 

последнее, но не менее, есть itertools.islice():

from itertools import islice 

for row in islice(file_reader, 5): 
    # only first five lines are iterated over 
+0

Спасибо f или подробный ответ! –

Смежные вопросы