Найти - Пользователи
Полная версия: Оптимальный алгоритм
Начало » Python для новичков » Оптимальный алгоритм
1 2
jartasa
Подскажите оптимальный алгоритм замены тэгов в тексте.К примеру:имеется текст(100мб) в нём нужно заменить несколько тегов на слова(#тег1# - слово 1,#тег2# - слово 2).Тэги лежат в файле вида:тег;переменная,слова генерируется походу работы скрипта.В питоне новичок прошу не пинать :) Нужен самый оптимальный алго.
Ferroman
Оптимальный по скорости?
А при чём тут переменные в файле с тегами?
Читаем/пишем в файл функцию замены предлагаю написать самому.
def func(line):
тут функция замены
return line

out = open('outfile.txt','w') #файл с заменёнными словами
for line in open('somefile.txt','r'): # читаем исходный файл
out.write(func(line))
out.close()
jartasa
Интересует именно функция замены тэгов,открыть и прочитать файл я и сам смогу.
GDK
Заменить надо в одном файле один раз и больше никогда? Тогда проще это сделать в текстовом редакторе с функцией поиска и замены текста. Будет проще наверное чем скрипт писать.
igor.kaist
GDK
Заменить надо в одном файле один раз и больше никогда? Тогда проще это сделать в текстовом редакторе с функцией поиска и замены текста. Будет проще наверное чем скрипт писать.
Ну тут был задан конкретный вопрос.
Самое простое это метод replace (читаем учебник)
Можно и регулярками…
Ferroman
Интересует именно функция замены тэгов,открыть и прочитать файл я и сам смогу.
1. Я не знаю кто что может, я не телепат.
2. RTFM
igor.kaist
Вообщем отвечу за топикстартера :)
Есть бааальшой файл, где есть всякие теги, типа #tag1#
Есть маленький файл типа:
#tag1#= var1
#tag2#= var2
...
необходимо в бааальшом файле заменить теги на значения переменных, имена которых мы берем из маленького файла.
Как то так?
Проблема то в чем?
Возьми код, который тебе предложил Ferroman. Далее приведи свой текстовый файл к словарю например, где ключи, это теги, а значения это имена переменных (ConfigParser'ом например, зависит от того, какой структуры он у тебя. И что то типа этого:
def func(line):
for v in replace_dict:
line=line.replace(v,eval(replace_dict[v]))
return line
я правильно тебя понял?
jartasa
Спасибо,то что надо.
jartasa
Как подсчитать количество одинаковых тэгов в тексте ?
pasaranax
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))
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB