запустите цикл for несколько раз внутри while loop python

#python #for-loop #while-loop

#python #цикл for #цикл while

Вопрос:

 start = 0
end = 100

file = open("numbers.txt", "r")

while start <= end:
    for x in file.readlines():
        print(x)
        print(start)
    start  = 1
  

Почему цикл For выполняется только один раз внутри цикла While?

Я хочу включать цикл For всякий раз, когда [start = 1] увеличивается ..

Комментарии:

1. После прочтения всего из файла в нем вроде как мало что осталось.

2. file.readline() вместо file.readlines() ?

3. могу ли я узнать, с какой целью вы используете цикл while? и я думаю, что цикла while достаточно для чтения текста из файла.

4. Я хочу перечитать файл много раз

5. readline() => прочитать букву letter из файла. Я хочу прочитать файл построчно

Ответ №1:

При первом запуске open("numbers.txt") создается указатель, указывающий на первый символ в файле. В конце цикла for указатель находится в конце файла, и дальнейшие итерации цикла while не приведут положение указателя к началу по умолчанию. Следовательно, вы должны вызвать file.seek(0), чтобы вернуть указатель в исходное положение перед следующей итерацией

 start = 0
end = 100

file = open("numbers.txt", "r")

while start <= end:
    for x in file.readlines():
        print(x)
        print(start)
    start  = 1
    file.seek(0)

file.close()
  

Кроме того, рекомендуется запускать file.close (), когда он больше не нужен, поэтому я также включил его в