Уведомления

Группа в Telegram: @pythonsu

#1 Март 19, 2013 23:45:22

Adastraz
Зарегистрирован: 2012-10-01
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Замены в тексте из словаря

Друзья, такая проблема
Прога делает замену b на a, которые записаны в csv-файле

import codecs, re

def load_dict(fname):
f = codecs.open(fname, 'r', 'utf-8-sig')
dictSwap = {}
for line in f:
old, new = line.strip().split(u';')
swap = old + u'(|ую?|е|ых?|ами?|ах?|ем|и|о(го|му|в|м)|ыми?|о(й|м))\\b'
if len(old) > 4:
dictSwap[swap] = new
f.close()
return dictSwap


def process_text(fname, dictionary):
fIn = codecs.open(fname, 'r', 'utf-8')
fOut = codecs.open('out.txt', 'w', 'utf-8')
for line in fIn:
for word in line.strip(u'.,()?![]-').split():
swapped = word
for swap in dictionary:
swapped = re.sub(swap, dictionary[swap] + u'\\1', swapped.lower(), flags = re.U)
if swapped != word:
fOut.write(swapped + ' ')
else:
fOut.write(word + ' ')
fOut.write(u'\r\n')


fIn.close()
fOut.close()
if __name__ == u'__main__':
dictionary = load_dict(u'kot.csv')
process_text(u'kit.txt', dictionary)

Но после входа:“ Я о завтраке не Мечтаю”
Она печатает с заменой, но:“ Я о ужине не мечтаю”
Как сохранить регистр?
Спасибо заранее

Отредактировано Adastraz (Март 20, 2013 00:30:58)

Офлайн

#2 Март 22, 2013 21:21:26

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

Замены в тексте из словаря

> Как сохранить регистр?

Разобраться как работает программа, понять, почему она меняет регистр, затем внести нужные исправления в код программы.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version