#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Thu Oct 22 11:00:00 2019 @author: andrea """ # dizionari: le chiavi devono essere immutabili (stringhe o tuple) # set: gli elementi devono essere immutabili # pwd e percorsi # files, mode (r, w, a, r+, rb, wb) encoding (utf-8 o utf-8-sig o latin) # with close # file come iterabile, radline, read, readlines, write, print # strip # requests get content text # file json # per trovare tutte le righe di un file che contengono una parola indipendentemente da maiuscole/minuscole # inizilmente il risultato è [] # aprire il file # scandirne le righe # trovare se la riga contiene la parola senza considerare il case # se presente aggiungo l'indice al risultato def trova_parola(filename, parola, enc='utf8'): parola = parola.lower() risultato = [] with open(filename, encoding=enc) as F: for i, linea in enumerate(F): linea = linea.lower() if parola in linea: risultato.append(i) return risultato # con la list comprehension def trova_parola_lc(filename, parola, enc='utf8'): parola = parola.lower() with open(filename, encoding=enc) as F: return [ i # elemento della lista for i, linea in enumerate(F) # scandendo le righe del file e tenendone il conto if parola in linea.lower() ] # si tengono solo i valori per cui la parola è presente nella linea def estrai_parole(filename, enc='utf8'): with open(filename, encoding=enc) as F: testo = F.read() nonalfa = [c for c in set(testo) if not c.isalpha()] for c in nonalfa: testo = testo.replace(c, ' ') return testo.split() def conta_parole(parole): uniche = set(parole) return { parola : parole.count(parola) for parola in uniche } def conta_parole_efficiente(parole): conteggio = {} for parola in parole: if parola in conteggio: conteggio[parola] += 1 else: conteggio[parola] = 1 return conteggio