Выделить текст в Word
Пишу скрипт, который ищет похожие предложения в Word и выделяет все похожие предложения цветом.
Проблема 1. Скрипт выводит только последний элемент массива, а надо чтобы выводил все элементы массива. В массивах содержатся предложения. Изза того что скрипт выводит только последний элемент массива, в результате выделяется цветом только одно предложение, а не все похожие предложения в ворде.
Проблема 2. Скрипт создает новый абзац и туда вставляет предложение(фото ниже), а надо чтобы не создавался новый абзац а в старом абзаце происходило выделение похожих предложений.
import docx
from docx import Document
from docx.shared import RGBColor
from docx import *
from docxtpl import DocxTemplate
import re
import string
import sys
import docx
import re
global doc
def videlit_v_word(): # функция которая выделяет цветом
document = Document()
a3 = document.add_paragraph().add_run(spisok)
font = a3.font
font.color.rgb = RGBColor(0x42, 0x24, 0xE9)
# document.save(demo1.docx)
a2 = document.add_paragraph().add_run(a)
document.save('demo1.docx')
def getText(filename): # функция которая позволяет загружать ворд в питон
doc = docx.Document(filename)
fullText = []
for para in doc.paragraphs:
fullText.append(para.text)
return '\n'.join(fullText)
a = getText(r'C:\Users\User\Desktop\test.docx') # сам документ ворд загружаемый в питон
n = a.split(".") # разделяем предложения если в них есть точки.
if "." in a:
my_list = a.split(".")[:-1]
print(my_list) # показываю весь массив который разбит на предложения
length_list = len(my_list) # начиная отсюда и до конца вниз где-то содержится ошибка с массивом
x = 0
y = 0
while x < length_list: # пока х меньше количества элементов в массиве он будет выполняться
if x == y:
y += 1
else:
y += 1
if x == y:
if x == length_list-1 and y == length_list-1:
break
y += 1
massiv_1 = my_list[x]
massiv_2 = my_list[y]
if massiv_1 == massiv_2:
spisok = [massiv_1 and massiv_2]
videlit_v_word()
if y == length_list - 1:
y = 0
x += 1


