Как начать чтение файла с определенной строки? Задача следующая:
Есть файл, длина строк в нем разная. Какая-то строка может быть 10 байт, какая-то 100, какая-то 500. Каким образом начать чтение файла с начала той или иной строки, при этом не читая весь файл?
Напрашивается решение:
Сделать фиксированную длину каждой строки, допустим 500байт. Таким образом, зная размер файла, мы можем с легкостью вычеслить на каком байте находится нужная строка и переместить на нужный байт указатель и начать чтение. Но, таким образом, размер файла существенно увеличится + есть вероятность что в выделенный лимит не все строки влезут.
Какие еще варианты?

21 Авг 2019 в 06:22
241 +1
1
Ответы
1

Один из вариантов - использовать цикл для построчного чтения файла, при этом заведя переменную, которая будет считать текущее количество обработанных байт. Когда нужно начать чтение с определенной строки, можно продолжать считывать строки до тех пор, пока не достигнем нужной строки, игнорируя при этом данные.

Другой вариант - использовать функцию seek(), которая позволяет перемещать указатель в файле. Можно использовать seek() чтобы переместить указатель на нужное место в файле и начать чтение с этой позиции.

Например, если вы хотите начать чтение с 5-й строки, вы можете использовать следующий код на Python:

with open("file.txt", "r") as file:
for _ in range(4): # прочитать первые 4 строки (считаем строки с 0)
file.readline()
for line in file:
print(line)

Оба подхода позволяют начать чтение файла с определенной строки, не читая его полностью.

20 Апр 2024 в 13:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир