Как мне найти и удалить определенную строку из txt файла? Python
Мне нужно найти 4 строчку в txt документе и удалить ее, при этом не оставив пустых строк. Как это сделать? Прошу не писать сложный код, мне просто надо удалить определенную строку из файла.
Ответы (3 шт):
Автор решения: CrazyElf
→ Ссылка
- открыть файл на чтение
- прочитать строки в список через
readlines - закрыть файл
- удалить не нужную строку из списка
- открыть файл на запись
- записать список строк в файл через
writelines - закрыть файл
Автор решения: elderberry17
→ Ссылка
Попробуйте такой скрипт:
with open('input.txt', 'r+') as f_in:
lines = f_in.readlines()
f_in.seek(0)
f_in.writelines(line for ind, line in enumerate(lines) if line.strip() and ind != 3)
f_in.truncate()
Вместо input.txt поставьте путь к вашему файлу (если он у вас в той же директории, достаточно названия)
Автор решения: eri
→ Ссылка
Удаление строки можно сделать не вычитывая фай в память. Но перезаписать его всё равно придется полностью:
with open('/tmp/test','r') as fr, open('/tmp/test','r+') as fw:
fw.writelines(line for i,line in enumerate(fr) if i!=3)
fw.truncate()
Можно не переписывать начало, промотаем файл к концу строчки перед ненужной:
with open('/tmp/test','r') as fr, open('/tmp/test','r+') as fw:
for i,line in enumerate(fr):
if i==(3-1):
fw.seek(fr.tell())
elif i>3:
fw.write(line)
fw.truncate()