Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 31, 2016 11:20:58

paduchy
Зарегистрирован: 2016-08-31
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

сравнение содержимого двух файлов и вывод в html

Всем привет.

Есть два текстовых файла, один с набором текста, второй с некоторым количеством строк, в каждой по одному слову. Нужно сравнить два файла и сохранить в html файл, весь первоначальный текст, в котором помечены жирным шрифтом все слова из второго файла.

Например:
1 файл
Файл содержит текст в виде последовательностей строк,
разделенных стандартным разделителем
строки.

2 файл
текст
видео
изображение
файл

В итоге должно получиться в файле html:
Файл содержит текст
в виде последовательностей строк,
разделенных стандартным разделителем
строки.

Большое спасибо за помощь.

Офлайн

#2 Авг. 31, 2016 11:22:27

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

сравнение содержимого двух файлов и вывод в html

ну так что не получается?
Покажите код?
На чем остановились?
Дайте реальный пример файлов?
Это ен стол заказов - ето ветка помощи начинающим и ищущим!



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Авг. 31, 2016 15:44:14

matue
Зарегистрирован: 2016-08-12
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

сравнение содержимого двух файлов и вывод в html

открывай оба файла на чтение, читаешь их строки, затем делаешь цикл по строкам 2го файла (т.е. по словам), если слово имеется в первом файле, обрамляешь его тегом <b></b>

Отредактировано matue (Авг. 31, 2016 15:44:59)

Офлайн

#4 Авг. 31, 2016 15:55:49

paduchy
Зарегистрирован: 2016-08-31
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

сравнение содержимого двух файлов и вывод в html

С открытием файлов понятно:

 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>')

Пока непонятно как сделать запись в html. Завести переменную список, куда записывать полученные результаты и потом сохранить в html? Как это можно реализовать?

Офлайн

#5 Авг. 31, 2016 16:05:03

paduchy
Зарегистрирован: 2016-08-31
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

сравнение содержимого двух файлов и вывод в html

ZerG
ну так что не получается? Покажите код?На чем остановились?Дайте реальный пример файлов?Это ен стол заказов - ето ветка помощи начинающим и ищущим!
файлы примерно такие и будут, в одном текст, во втором несколько ключевых слов, которые и нужно выделить в первом файле и представить в html

Офлайн

#6 Авг. 31, 2016 16:15:59

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

сравнение содержимого двух файлов и вывод в html

Так же как вы открываете файл - сохраняйте результат
в файл index.html и все



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#7 Авг. 31, 2016 18:48:18

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

сравнение содержимого двух файлов и вывод в html

matue
открывай оба файла на чтение, читаешь их строки, затем делаешь цикл по строкам 2го файла
все не так однозначно. вообщем то основа правильная но надо еще кучу проверок организовать так как слово Файл из первого и слово файл из второго списка при сравнении будет давать false и замена не произойдет. поэтому слова сравнивать нужно в одном регистре и проверять начинается ли слово из первого списка с заглавной буквы и соответственно менять аналогично. так же проверка строки файловый на вхождение подстроки файл даст истину и результат будет файловый поэтому еще сравнивать длину но опять же файл. и файл даст false поэтому длина первой строки может быть больше длины второй строки на 1 при этом последний символ первой строки не должен быть буквой (символы запятая точка двоеточие и т.д)
 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)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version