Консультация № 198770
27.05.2020, 21:17
0.00 руб.
0 1 1
Здравствуйте! Прошу помощи в следующем вопросе на питоне:
Напишите программу, которая заменяет одно слово в текстовом файле на другое. Словом называется последовательность непробельных символов, ограниченная пробелами или границами строки. Слово-образец может начинаться как с заглавной, так и со строчной буквы; замена должна быть соответствующая. Если слово-образец совпадает с частью какого-то слова, замена не выполняется. После слова может стоять знак препинания из следующего набора: «.,:;!?». Исходный текст записан в файле input.txt , обработанный текст нужно вывести в файл output.txt .

Входные данные
Первая строка входного файла input.txt содержит слово-образец, во второй строке записано слово-замена. Эти слова содержат только строчные буквы. В следующих строках записан текст для обработки.

Выходные данные
Программа должна вывести обработанный текст в файл output.txt .

Примеры
входные данные
tail
head
Bobtail has a tail.
выходные данные
Bobtail has a head.

Обсуждение

давно
Старший Модератор
312929
1973
03.06.2020, 19:23
общий
это ответ
Здравствуйте, kandALS!

Вариант с использованием регулярных выражений (regexp):[code lang=python]import re
f = open("input.txt", 'r')
src, dst, text = f.read().split('\n',2)
f.close()
text = re.sub(r'(\s)'+src+r'([\.,:;!?\s])', r'\1'+dst+r'\2', text)
text = re.sub(r'(\s)'+src.capitalize()+r'([\.,:;!?\s])', r'\1'+dst.capitalize()+r'\2', text)
f = open("output.txt", 'w')
f.write(text)
f.close()[/code]
Замена по шаблону (функция re.sub) используется два раза - для слова-образца, начинающегося со строчной буквы и с заглавной.
Форма ответа