Удаление первых N строк файла.txt

Как удалить первые N строк файла? Порядок строк после удаления не важен. Самый очевидный вариант для меня - посчитать в цикле количество строк, затем запустить второй цикл на удаление. Есть более чистые решения?

Для общего понимания:

Файл будет содержать максимум 50 (условно) строк из заголовков (резлуьтат парсинга). При достижении им этого количества, надо удалить первые 40, чтобы в файле остались только последние 10.

Парсер проверяет есть ли заголовок статьи в файле, если нет, то заголовок включается в результат (показывается пользователю). Если есть - игнорируется. Решение которое я ищу должно предотвратить разрастание файла.

Может есть другое решение? Типа записывать новую строку в начало, а последнюю удалять. Подскажите как правильнее, пожалуйста.


Ответы (1 шт):

Автор решения: Fox Fox
def remove_first_n_lines(file_path, n):
    with open(file_path, 'r') as file:
        lines = file.readlines()
    
    with open(file_path, 'w') as file:
        file.writelines(lines[n:])

# Пример использования
file_path = 'your_file.txt'
n = 5  # Количество строк для удаления
remove_first_n_lines(file_path, n)
→ Ссылка