Как сделать замену в строке .txt файла без создания новой строки?

txt файл содержит список:

14.05.2019 картофель \n

20.05.2018 лук, морковь\n

11.05.2018 баклажан

попробовал решить задачу следующим образом:

with open('E:/Gadgets/Список овощей.txt', "r+", encoding='cp1251') as f:
    contents = f.readlines()

    for i in iter(contents):
        if "морковь" in i:
            new_vegetable = "капуста"
            f.write(i.replace("морковь", new_vegetable)) 

код замену осуществляет, но добавляет новую строку, а это не то, чего я добиваюсь


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

Автор решения: Денис Степанов

Можно воспользоваться таким вариантом.

import fileinput

for line in fileinput.FileInput(path, inplace=True):
    line = line.replace("морковь", "капуста")
    print(line, end='')

Или так.

with open(file_path, "r") as file:
    result_text = file.read().replace("морковь", "капуста")

with open(file_path, "w") as file:
    file.write(result_text)
→ Ссылка