import re
def strSearch(file_txt, search_str, caseInsen = False):
f = open(file_txt,"r")
text = f.readlines()
f.close()
lines = {}
for line in text:
found = re.findall("("+search_str+")", line.strip(), flags=re.IGNORECASE) if(caseInsen.lower() == 'n') else re.findall("("+search_str+")", line.strip())
if found:
line_found = re.sub(r'('+search_str+')', r'->\1<-', line, flags=re.IGNORECASE) if(caseInsen.lower() == 'n') else re.sub(r'('+search_str+')', r'->\1<-', line)
lines.update({(text.index(line)+1):line_found})
if (lines):
print('\nSe han encontrado las siguientes coincidencias, la cadena o subcadena estara marcada entre -> <-\n')
for line_num in lines:
print('Linea %s:\n\t%s' % (line_num, lines[line_num]))
else:
print('Lo sentimos, no se han encontrado coincidencias en el archivo')
file_txt = input('Ingrese el nombre y ruta del archivo : ')
search_str = input('Ingrese la cadena o subcadena a buscar en el archivo : ')
case_ins = input('Desea hacer la busqueda sensible a mayusculas y minusculas (s/n) : ')
strSearch(file_txt, search_str, case_ins)