python, replace

С помощью read я читаю файл, в котором строка "Hello". Мне её нужно заменить с помощью replace с "Hello" на "Hello, (Слово с инпута), Ola". Я и не удивлён что ничего не вышло. Вроде много запятых. Короче, Hello не меняется на то что я написал. Мб поможете?)

nf2 = input("Слово: ")
new_data = old_data.replace('Hello', 'Hello', nf2, 'Ola')

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

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

Replace не работает так, как вы написали. Он может менять 1 значение на другое (не много сразу). Поэтому нужно сначала сформировать строку, на которую нужно заменить слово Hello, а потом уже заменять.

f = open('file.txt', 'r')
data = f.read()
f.close()
input = input()
string ="Hello, "
string += input
string += " Ola" #теперь string - готовая строка
new_data = data.replace("Hello", string) #замена

f = open('file.txt', 'w') # и запись в файл
data = f.write(new_data)
f.close()
→ Ссылка
Автор решения: gil9red

Просто сложите строки с тем, что было введено:

nf2 = input("Слово: ")
text = 'Hello, ' + nf2 + ', Ola'
new_data = old_data.replace('Hello', text)

Или используйте форматирование строки:

text = f'Hello, {nf2}, Ola'

Еще (этот был до появления f-строк):

text = 'Hello, {}, Ola'.format(nf2)

Еще (это уже мало используется):

text = 'Hello, %s, Ola' % nf2
→ Ссылка