Форум сайта python.su
Подскажите оптимальный алгоритм замены тэгов в тексте.К примеру:имеется текст(100мб) в нём нужно заменить несколько тегов на слова(#тег1# - слово 1,#тег2# - слово 2).Тэги лежат в файле вида:тег;переменная,слова генерируется походу работы скрипта.В питоне новичок прошу не пинать :) Нужен самый оптимальный алго.
Отредактировано (Сен. 20, 2009 21:06:19)
Офлайн
Оптимальный по скорости?
А при чём тут переменные в файле с тегами?
Читаем/пишем в файл функцию замены предлагаю написать самому.
def func(line):
тут функция замены
return line
out = open('outfile.txt','w') #файл с заменёнными словами
for line in open('somefile.txt','r'): # читаем исходный файл
out.write(func(line))
out.close()
Офлайн
Интересует именно функция замены тэгов,открыть и прочитать файл я и сам смогу.
Офлайн
Заменить надо в одном файле один раз и больше никогда? Тогда проще это сделать в текстовом редакторе с функцией поиска и замены текста. Будет проще наверное чем скрипт писать.
Офлайн
GDKНу тут был задан конкретный вопрос.
Заменить надо в одном файле один раз и больше никогда? Тогда проще это сделать в текстовом редакторе с функцией поиска и замены текста. Будет проще наверное чем скрипт писать.
Офлайн
Интересует именно функция замены тэгов,открыть и прочитать файл я и сам смогу.1. Я не знаю кто что может, я не телепат.
Офлайн
Вообщем отвечу за топикстартера :)
Есть бааальшой файл, где есть всякие теги, типа #tag1#
Есть маленький файл типа:
#tag1#= var1
#tag2#= var2
...
def func(line):
for v in replace_dict:
line=line.replace(v,eval(replace_dict[v]))
return line
Отредактировано (Сен. 22, 2009 10:42:01)
Офлайн
Спасибо,то что надо.
Офлайн
Как подсчитать количество одинаковых тэгов в тексте ?
Офлайн
jartasa
Как подсчитать количество одинаковых тэгов в тексте ?
from BeautifulSoup import BeautifulSoup
text = "<b>dsfasdf</b> <c>dsfasdfasdf</c> <b>dsfasdf</b> <b param=1>asd</b> <b param=1>dsfadsf</b>"
soup = BeautifulSoup(text)
print len(soup.findAll("b", param=1))
Офлайн