Чтение файла похоже на чтение книги, в которой у вас есть закладка, которую вы перемещаете по мере чтения.
Когда вы открываете файл, у вас есть эта «закладка» в исходной позиции, а затем при чтении некоторых его частей он перемещается, чтобы запомнить следующие байты для чтения. файл был прочитан. «Закладка» уже находится в конце файла.
Вместо повторного чтения файла я предлагаю сохранить исходное количество строк при первом чтении:
old_num_lines = num_lines = len(file.read().split("\n")) - 1
В любом случае, возвращаясь назад в начало файла тоже будет очень просто, с помощью метода seek()
:
file.seek(0)