Вот что наваял. Может кому сгодится. Нужен файлик Exel в котором будем искать. В какой-то ячейке вбиваем - что искать. Это можно и из Питона делать (просто пробую как удобнее). В коде соответственно выбираем по какой колонке искать и из каких выводить найденное. Выведет в другой файл.
Если кто поможет советом по улучшению - буду признателен.
import re from Levenshtein import ratio from openpyxl import load_workbook from openpyxl import Workbook import subprocess from array import array ####################### ДВИГАЕТ ИСКОМОЕ СЛОВО ПО ПРОВЕРЯЕМОМУ def Dvigatel(Ftho, Fr): mm = []# s=0# dlinaA=len(Ftho)# dlinaB=len(Fr)# step=0# while step <= dlinaB: vesslova = ratio(Ftho, Fr[step:])# Вес слова s=vesslova mm.append(s)# Добавляем в массив step=step+1 maxim=max(mm)# Максимальный вес indexm=mm.index(maxim)# Индекс максимального веса f=Fr[indexm:] dlinaC=len(f) if dlinaA > dlinaB: e=f[:] else: ost=dlinaC-dlinaA e=f[:-ost] if dlinaA >= dlinaC: e=f v=0 v = ratio(Ftho, e) return v ############################################################## book = Workbook() # Создаем поток-книгу sheet1 = book.active # Выбираем активный лист wb = load_workbook(filename='Ob2017.xlsx') # ВЫБЕРИ ФАЙЛ sheet = wb.get_sheet_by_name('Лист1') # Имя активного листа thot = sheet.cell(row=1, column=7) # В этой ячейке в файле задаем что искать tho = thot.value # Присваиваем Значение ячейки переменной stroki = 1 # Начало счета строк в КОЛОНКЕ поиска strvyvoda = 1 # Начало счета Строки для Вывода в файл while stroki < 21074: # ЦИКЛ КОЛОНКИ ПОИСКА СКОЛЬКО СТРОК В ФАЙЛЕ ПЛЮС 1 a = sheet.cell(row=stroki, column=1) # колонка c = sheet.cell(row=stroki, column=2) # колонка bb = sheet.cell(row=stroki, column=4) # Поисковая колонка bbb = bb.value # Значение ячейки анализа b = bbb.lower() # Приводим все к нижнему регистру zamenasimvolov = re.sub(r'[^\w\s]+|[\d]+', r' ', b) # Оставляем только текст scolkoslov = len(zamenasimvolov.split()) # Сколько слов в ячейке анализа r = re.findall(r'\w+', zamenasimvolov) # Записываем список слов из ячейки slov = 0 # Начало счета слов в ЯЧЕЙКЕ поиска while slov < scolkoslov: # ЦИКЛ ПОДСЧЕТА СЛОВ В ЯЧЕЙКЕ Ftho = tho Fr = r[slov] v=0 v = Dvigatel(Ftho,Fr) if v > 0.75: # УСЛОВИЕ ВЫБОРА ПОДОБРАТЬ КАКОЙ ВЕС НУЖЕН print (Fr) sheet1.cell(row=strvyvoda, column=1).value = a.value # Колонка вывода sheet1.cell(row=strvyvoda, column=3).value = bb.value # Колонка вывода sheet1.cell(row=strvyvoda, column=2).value = c.value # Колонка вывода book.save("Vyvod.xlsx") # Запись в файл strvyvoda = strvyvoda+1 slov = slov + 1 stroki = stroki + 1 subprocess.call("Vyvod.xlsx", shell=True) # Открываем файл результата поиска wb.close() # Закрываем поток