Forum
>>
Programmazione Python
>>
Scripting
>>
Manipolazione files di testo,liste,dizionari - Aiuto per esercizio -
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da Valindar |
2018-01-10 11:22:40 - Manipolazione files di testo,liste,dizionari - Aiuto per esercizio -
|
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 ;-) |
|
Scritto da Valindar |
2018-01-10 13:50:53 - Re: Manipolazione files di testo,liste,dizionari - Aiuto per esercizio -
|
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=nameAdesso 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 |
|
Scritto da Daniele aka Palmux |
2018-01-10 20:32:04 - Re: Manipolazione files di testo,liste,dizionari - Aiuto per esercizio -
|
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.