@Lesli

Как удалить последнюю строку в файле?

Есть файл, в конце которого есть строка "Всего: ". Мне ее нужно удалить, как это сделать?
  • Вопрос задан
  • 4137 просмотров
Пригласить эксперта
Ответы на вопрос 3
@marxxt
понравился ответ - поставь ✔
with open('test', 'r') as f:
    lines = f.readlines()
    lines = lines[:-1]

with open('test', 'w') as f:
    f.writelines(lines)
Ответ написан
Комментировать
OrlovEvgenii
@OrlovEvgenii
golang developer / DevOps
lines = file.readlines()
lines = lines[:-1]


или просто в консоли
head -n -1 file.txt > newfile.txt
Ответ написан
Комментировать
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Если файлы ооочень большие, то чтением всего файла построчно в память и записью в новый файл не справиться!
Используйте модуль mmap. Переместитесь по seek на 5-10 максимально возможных строчек от размера файла, просканируйте строчки, возьмите размер последней строки и обрежте файл через resize.
Таким методом можно работать с любыми размерами файлов и очень быстро делать инплейс редактирование!
https://docs.python.org/3.0/library/mmap.html
В дополнение, если искомая строка для удаления находится не в самом конце файла, то кроме resize нужно еще и использовать move.
Ну и немного примеров здесь https://pymotw.com/2/mmap/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы