Невозможно напрямую получить прямой доступ к определенному количеству строк файла, поскольку строки могут начинаться в любой позиции и иметь любую длину. Таким образом, единственный способ узнать, где находится каждая строка в файле, - это прочитать каждый символ файла, чтобы найти каждый символ новой строки.
Понимая, что вы можете перебирать заданный объект файла для создания списка файлов. позиции конца каждой строки, вызывая метод tell
объекта файла, чтобы затем вы могли "напрямую получить доступ" к любому номеру строки, который вы хотите, с помощью метода seek
объекта файла, чтобы прочитать определенную строку:
list_of_lines = [3991, 3992]
with open('file.txt') as file:
positions = [0, *(file.tell() for line in file)]
for line_number in list_of_lines:
file.seek(positions[line_number - 1])
if 'this city' in next(file):
print(f"'this city' found in line #{line_number}")