Добрый день, пытаюсь из файла удалить слово, данный код добавляет только строку без искомого слова в конец файла,
как удалить искомое слово из файла?
f = open('example.txt', "r+")
Lines = f.readlines()
for line in Lines:
if 'word' in line.strip('\n'):
new_line = line.replace(word, "")
f.write(new_line)
f.close()
Ваш код читает файл, а при нахождении сразу и пишет его в конец файла.
Вариантов вижу два:
1. писать результат в новый файл
2. результат накапливать и только после чтения всего файла переоткрыть его в режиме записи ("w") и только тогда записать
1. записать в новый файл, это как ректально гланды удалять, строку удалить возможно, а слово нет?
2. r+ в этом режиме есть возможность записи
ничего по существу
f = open("example.txt", "r+")
d = f.readlines()
f.seek(0)
for i in d:
new_line = i.replace("word", "")
f.write(new_line)
f.truncate()
f.close()
Или вот еще вариант:
f = open("example.txt", "r")
lines = f.readlines()
f.close()
f = open("example.txt", "w")
for line in lines:
new_line = line.replace("word", "")
f.write(new_line)
f.close()
В этом режиме есть возможность "дозаписи", но не перезаписи
Стандартный режим - 'r' (открыть для чтения текста, синоним 'rt'). Режимы 'w+' и 'w+b' открывают и перезаписывают файл. Режимы 'r+' и 'r+b' открывают файлы без очистки.
Заменяем в строке....
А что заменяем? Что за переменная word ?
В общем, что меняем на пустую строку. То есть удаляем то что нашли.
f.write(new_line)
измененную строку дописали в конец файла
f.close()
закрыли файл
1. Таким образом вы реализовали дописывание в файл изменённых строк. Не удаление слов.
2. Проверка на наличие 'word' в строке лишняя, replace успешно отработает и при отсутствии вхождений в строку.
Практически эта задача звучит так. Создать копию файла с изменённой строкой. Такой подход к изменению текстовых файлов во всех языках и системах программирования.