Форум сайта python.su
0
Всем привет.
Есть два текстовых файла, один с набором текста, второй с некоторым количеством строк, в каждой по одному слову. Нужно сравнить два файла и сохранить в html файл, весь первоначальный текст, в котором помечены жирным шрифтом все слова из второго файла.
Например:
1 файл
Файл содержит текст в виде последовательностей строк,
разделенных стандартным разделителем
строки.
2 файл
текст
видео
изображение
файл
В итоге должно получиться в файле html:
Файл содержит текст
в виде последовательностей строк,
разделенных стандартным разделителем
строки.
Большое спасибо за помощь.
Офлайн
61
ну так что не получается?
Покажите код?
На чем остановились?
Дайте реальный пример файлов?
Это ен стол заказов - ето ветка помощи начинающим и ищущим!
Офлайн
0
открывай оба файла на чтение, читаешь их строки, затем делаешь цикл по строкам 2го файла (т.е. по словам), если слово имеется в первом файле, обрамляешь его тегом <b></b>
Отредактировано matue (Авг. 31, 2016 15:44:59)
Офлайн
0
С открытием файлов понятно:
file_text = open('text.txt', r) file_dict = open('dict.txt', r) file_text.read() file_dict.read()
for word in words: text.replace(word, '<b><i>'+word+'</i></b>')
Офлайн
0
ZerGфайлы примерно такие и будут, в одном текст, во втором несколько ключевых слов, которые и нужно выделить в первом файле и представить в html
ну так что не получается? Покажите код?На чем остановились?Дайте реальный пример файлов?Это ен стол заказов - ето ветка помощи начинающим и ищущим!
Офлайн
61
Так же как вы открываете файл - сохраняйте результат
в файл index.html и все
Офлайн
73
matueвсе не так однозначно. вообщем то основа правильная но надо еще кучу проверок организовать так как слово Файл из первого и слово файл из второго списка при сравнении будет давать false и замена не произойдет. поэтому слова сравнивать нужно в одном регистре и проверять начинается ли слово из первого списка с заглавной буквы и соответственно менять аналогично. так же проверка строки файловый на вхождение подстроки файл даст истину и результат будет файловый поэтому еще сравнивать длину но опять же файл. и файл даст false поэтому длина первой строки может быть больше длины второй строки на 1 при этом последний символ первой строки не должен быть буквой (символы запятая точка двоеточие и т.д)
открывай оба файла на чтение, читаешь их строки, затем делаешь цикл по строкам 2го файла
def font(x, list_2): x = x.split() for i, word in enumerate(x): for j in list_2: if j in word.lower() and len(j) == len(word) or len(j) == len(word)-1 and word[-1].isalpha() == False: zamen = '<b>'+word+'</b>' if x[i].istitle() == True: zamen = zamen.capitalize() x[i] = zamen return ' '.join(x) with open('1.txt') as file_1, open('2.txt') as file_2, open('index.html','w') as file_3: list_1 = file_1.read().splitlines() list_2 = file_2.read().splitlines() for i in [font(x, list_2) for x in (list_1)]: file_3.write(i)
Отредактировано marvellik (Авг. 31, 2016 20:12:52)
Офлайн