Как ЗАМЕНИТЬ текст в txt, который при этом извлекается из txt, используя .replace()

Рейтинг: -1Ответов: 1Опубликовано: 23.02.2023

введите сюда описание изображенияесть txt файлы и inputbox

file1.txt , file2.txt, inputbox

Конкретно:

Код, который заменяет слово в file1.txt(которое берёт из file2.txt), при этом в file1.txt все написано в одну строку. Заменяет на другое слово, которое берёт из inputbox и вписывает новое слово в file2.txt для последующей замены

Либо подскажите пожалуйста, как изменить определенные данные в txt, если всё написано в одну строку

Ответы

▲ 0Принят

Надеюсь, что я правильно трактовал Ваш алгоритм и схему. Код будет выполнять следующие шаги:

  • Открываем файл file2.txt и читаем из него слово, которое нужно заменить в файле file1.txt;
  • Открываем файл file1.txt и читаем из него всю строку. Заменяем в ней найденное слово на новое слово, которое введет пользователь;
  • Записываем измененную строку в файл file1.txt;
  • Записываем новое слово в файл file2.txt.

Решение:

# Открываем файл file2.txt и читаем из него слово для замены
with open('file2.txt', 'r', encoding='utf-8') as f:
    old_word = f.read().strip()

# Ввод слова
new_word = input("Введите новое слово для замены: ")

# Открываем файл file1.txt и заменяем старое слово на новое
with open('file1.txt', 'r', encoding='utf-8') as f:
    line = f.read()
    new_line = line.replace(old_word, new_word)

# Записываем новую строку в файл file1.txt
with open('file1.txt', 'w', encoding='utf-8') as f:
    f.write(new_line)

# Записываем новое слово в файл file2.txt для последующей замены
with open('file2.txt', 'w', encoding='utf-8') as f:
    f.write(new_word)

Наполнение file1.txt:

Семь раз в неделю old_word ждет меня в степи. old_word я любил Вас.

Наполнение file2.txt:

old_word.

В данном конкретном примере inputbox происходит через терминал, но Вы можете использовать new_word = inputbox.

Хочу обратить Ваше внимание, что в этом примере файлы имею кодировку utf-8, у Вас оно может быть другим, что потребует изменения файлов.

Так же это не выглядит, как самое оптимальное решение. Возможно в дальнейшем Вам придется развить код, таким образом, чтобы выполнялся поиск старого слова в тексте, которое ищет пользователь.