Forum >> Programmazione Python >> Scripting >> Manipolazione files di testo,liste,dizionari - Aiuto per esercizio -

Pagina: 1

Salve a tutti,
sono un neofita ovviamente.
Ho trovato questo esercizio su un testo che sto studiando,qualcuno mi aiuta a risolverlo?

"Script che indicizza tutti i file di una specifica direcotry fornita da utente.
Deve costruire un dizionario in cui le chiavi sono tutte le parole univoche di tutti i file
(descritte dall’espressione regolare r"w+" , trattando le parole senza distinguere fra lettere maiuscole e minuscole),
e il valore di ogni voce e' una lista di nomi di file che contengono tale parola.

Per esempio,se la parola aloha è menzionata nei file early-internet.dat e hawaiian-travel.txt,
il dizionario dovrà contenere la voce:
{..., 'aloha': ['early-internet.dat', 'hawaiian-travel.txt'],...}."

Non so bene come collegare la lista di parole univoche con le chiavi del dizionario ed associare la lista dei files a cui appartengono.
Per ora ho fatto questo:
for root, dirs, files in os.walk(path): 
    for name in files: 

        # Apro file
        file = open(os.path.join(path,name))

        # Divido il file in una lista di parole
        wordss = re.findall(r"w+",file.read())

        # Elimino dalla lista di parole i duplicati
        wordss = list(set(wordss))

Grazie per qualsiasi suggerimento ;-)



Posso dire di aver raggiunto questo risultato:
for root, dirs, files in os.walk(path): 

    for name in files: 

        # Apro file
        file = open(os.path.join(path,name))

        # Divido il file in una lista di parole
        wordss = re.findall(r"\w+",file.read())

        # Elimino dalla lista di parole i duplicati
        wordss = list(set(wordss))

        # Ottengo un dizionario dalla lista parole non duplicare del file
        diz = dict(enumerate(wordss))

        # Creo un dizionario con le keys che corrispondono ai values di diz e con values nome file usato
        for v in diz.values():
            dv=name
Adesso ho n dizionari comporti da chiave=parola_univoca valore=nome_file.

Come faccio ad unire questi N dizionari in un unico dizionario strutturato come spiegato?

Cioè con chiave = parola_univoca valore = lista_file_di_appartenenza ?




Help






Ciao caro, non ho letto tutto con estrema attenzione, sono con lo smartphone (e sono passeggero di un autista folle), ma potresti:

Unire i dizionari con .update() e poi lavorare all'interno.
oppure
"Ciclare" tutti i dizionari ed ottenere i dati che ti servono e creare il nuovo dizionario.

Ora non posso scrivere codice, se puoi fammi un esempio dei dizionari che hai e di come dovrebbero diventare così ti do un consiglio concreto.

Cya


Pagina: 1



Esegui il login per scrivere una risposta.