In [ ]:
def obtener_lineas_mas_largas(ruta):
"""
Recibe una ruta asociada a un archivo
Devuelve un diccionario que contiene
como claves las palabras del archivo y como
valores la linea mas larga en la que aparece
"""
lineas_mas_largas = {}
with open(ruta) as archivo:
for linea in archivo:
for palabra in linea.split():
if len(lineas_mas_largas.get(palabra, "")) < len(linea):
lineas_mas_largas[palabra] = linea
return lineas_mas_largas
In [1]:
def lineas_mas_largas_en_archivos(rutas_archivos):
"""
Recibe una lista de rutas de archivos
Devuelve un diccionario con palabras como claves
y como valores una tupla con la linea mas larga
y el archivo al que pertenece esa linea
"""
palabras_archivos = {}
for ruta in rutas_archivos:
lineas_mas_largas = obtener_lineas_mas_largas(ruta)
for palabra,linea in lineas_mas_largas.items():
if len(linea) > len(lineas_mas_largas.get(palabra,("","")[0])):
palabras_archivos[palabra] = (linea, ruta)
with open("salida", "w") as archivo_salida:
for pal, linea_ruta in palabras_archivos.items():
linea = "{}:{}:{}\n".format(pal, linea_ruta[0], linea_ruta[1])
archivo_salida.write(linea)