Лидеры рейтинга

ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

340

Россия, пос. Теплоозёрск, ЕАО


ID: 401284

Михаил Александров

Советник

267

Россия, Санкт-Петербург


ID: 400669

epimkin

Профессионал

254


ID: 137394

Megaloman

Мастер-Эксперт

122

Беларусь, Гомель


ID: 405239

al4293189

1-й класс

86


ID: 401888

puporev

Профессор

69

Россия, Пермский край


ID: 325460

CradleA

Мастер-Эксперт

65

Беларусь, Минск


8.9.8

01.08.2021

JS: 2.9.16
CSS: 4.5.14
jQuery: 3.6.0
DataForLocalStorage: 2021-08-03 10:16:01-standard


Создание программ на языках PHP, Perl и Python.

Администратор раздела: Коцюрбенко Алексей Владимирович (Старший модератор)

Консультация онлайн # 198770

Раздел: PHP / Perl / Python
Автор вопроса: kandALS (Посетитель)
Дата: 27.05.2020, 21:17 Консультация закрыта
Поступило ответов: 1

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

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

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

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

Здравствуйте, kandALS!

Вариант с использованием регулярных выражений (regexp):
Код [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()

Замена по шаблону (функция re.sub) используется два раза - для слова-образца, начинающегося со строчной буквы и с заглавной.

Коцюрбенко Алексей Владимирович

Старший модератор
03.06.2020, 19:23
Мини-форум консультации # 198770

Нет сообщений в мини-форуме

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

Лучшие эксперты раздела

Коцюрбенко Алексей Владимирович

Старший модератор

Рейтинг: 0

Асмик Гаряка

Советник

Рейтинг: 0

SAW

Студент

Рейтинг: 0

Хватов Сергей

Академик

Рейтинг: 0

Марк Крейн

5-й класс

Рейтинг: 0

Evgen aka Chuma

6-й класс

Рейтинг: 0