为什么这个Python while循环不起作用?

时间:2013-12-07 00:13:14

标签: python-2.7 while-loop

我正在尝试计算文件中的行,直到至少有5行,然后停止计数。

我无法弄清楚为什么这个简单的while循环似乎会产生无限循环:

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

1 个答案:

答案 0 :(得分: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