Как получилось, это удалило blih
или bluh
?
Чтобы ответить на ваш вопрос, вы слишком часто усекаете файл.Каждый вызов f.truncate(0)
будет сбрасывать размер файла до 0. Следовательно, выживет только последняя строка blihihih
.
Если вы хотите сделать это за один раз:
f = open('test.txt', 'r+')
lines = f.readlines()
f.seek(0)
for line in lines:
if line.find('blah') < 0:
f.write(line)
f.truncate()
f.close()
Кроме того, вы действительно должны использовать with
:
with open('test.txt', 'r+') as f:
lines = f.readlines()
f.seek(0)
for line in lines:
if line.find('blah') < 0:
f.write(line)
f.truncate()
(тогда вам не нужно будет писать f.close()
. Узнайте больше о том, почему, например, with
здесь .)