Программа считывает текстовый файл и заменяет совпадающее слово на основе переменной. Проблема в том, что заменяются неточные соответствия. Так что, если я вместо «» с «да» слово «то» становится «дан»python: заменить точное соответствие с помощью переменной
for fn in os.listdir('.'):
if os.path.isfile(fn):
if fn.endswith(".txt"):
s = open(fn).read()
for i in skills:
link = skills[i]
s = s.replace(i, "<a href=\"%s\">%s</a>" %(link,i), 1)
print "%s updated" %fn
f = open(fn, 'w')
f.write(s)
f.close()
Проблема заключается в s = s.replace(i, "<a href=\"%s\">%s</a>" %(link,i), 1)
, где первый аргумент в s.replace() является переменной, содержащей строку Я хочу соответствовать.
Я попытался с помощью границы слов s = s.replace(r'\b'+i+r'\b', "<a href=\"%s\">%s</a>" %(link,i), 1)
и форматирование значения при i
в новую переменную: regex = r'\b' + i + r'\b'
и используя regex
в качестве первого аргумента в s.replace
, но он не работает.
Примечание. skills
является словарь, содержащий слово/ссылку пары
Можете ли вы предоставить примеры входных и выходных строк а также демонстрация актуальной проблемы. У нас нет ваших файлов, поэтому мы не знаем, каков ваш вклад и ожидаемый результат из 'replace'. – Marcin