from string import punctuation


def carica_leggi(filename: str):
    try:
        fio = open(filename, "r")

        leggi = {}

        titolo = fio.readline()

        while titolo != "":
            linea = fio.readline()
            legge = ""

            while linea != "\n" and linea != "":
                legge += linea.strip()
                linea = fio.readline()

            leggi[titolo.strip()] = legge

            titolo = fio.readline()

        fio.close()
    except FileNotFoundError:
        exit(f"Errore: Il file {filename} non è stato trovato!")
    except IOError:
        exit("Errore: Si è verificato un problema durante la lettura del file!")

    return leggi


def carica_argomenti(filename: str):
    try:
        fio = open(filename, "r")
        argomenti = [arg.strip() for arg in fio]
        fio.close()
    except FileNotFoundError:
        exit(f"Errore: Il file {filename} non è stato trovato!")
    return argomenti


def rimuovi_punteggiatura(stringa: str):
    for p in punctuation:
        stringa = stringa.replace(p, " ")

    return stringa


def main():
    leggi = carica_leggi("leggi_di_Murphy.txt")
    argomenti = carica_argomenti("argomenti.txt")

    for legge in leggi:
        testo_legge = leggi[legge]
        parole = rimuovi_punteggiatura(testo_legge.lower()).split()

        for argomento in argomenti:
            if argomento in parole:
                if len(testo_legge) > 50:
                    testo_legge = testo_legge[:50] + "..."
                print(legge, "-", testo_legge)
                break


if __name__ == '__main__':
    main()
