Pulizia della lista contattiSviluppo e personalizzazione

Uno script Python che mette in ordine la sua lista contatti: un unico formato per nomi, telefoni ed email, e niente duplicati

Di solito pronto in 15 minutiRevisioni incluseControllo di qualità
Pacchetti
Pagamento protettoDettagli
  • Le revisioni previste dal pacchetto sono gratuite.
  • Se non risponde entro 3 giorni dalla consegna, il lavoro viene accettato automaticamente.

Il denaro viene riservato al momento del pagamento e sbloccato solo quando accetta il lavoro.

Uno script Python che mette in ordine la sua lista contatti: un unico formato per nomi, telefoni ed email, e niente duplicati

Esempio di risultato

Esempio per il pacchetto Standard

Unire i file mensili delle vendite di 9 negozi in un unico report Excel

Come si esegue

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  Cartella: sales/2026-10, 9 file trovati
2026-11-02 09:14:03 INFO  shop-01.csv: 1.284 righe
2026-11-02 09:14:04 INFO  shop-02.xlsx: 967 righe
2026-11-02 09:14:04 WARN  shop-07.csv: saltate 3 righe senza prezzo (righe 88, 412, 913)
2026-11-02 09:14:05 INFO  Fatto: 10.412 righe -> report-2026-10.xlsx (fogli "Vendite" e "Totali")

Impostazioni, non codice

I nomi delle colonne di ogni negozio si trovano in settings.ini, quindi un nuovo negozio o una colonna rinominata è una riga lì:

[columns]
date = Data, Data vendita, Giorno
product = Prodotto, Articolo, Descrizione
quantity = Q.tà, Quantità, Pz
price = Prezzo, Prezzo unitario

Una parte del codice

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """Legge il file di un negozio e gli dà i nomi di colonna del report."""
    table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
    renamed = {}
    for name, variants in columns.items():
        found = next((c for c in table.columns if c.strip() in variants), None)
        if found is None:
            raise ReportError(f"{path.name}: nessuna colonna per '{name}' (cercate: {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

File: un archivio ZIP con merge_sales.py (310 righe), settings.ini, requirements.txt e un README su come installare Python, eseguire lo script e cosa significa ogni messaggio del registro. Il cliente lo esegue sul proprio computer.

Cliente: una piccola catena di 9 cartolerie; ogni negozio invia le vendite del mese in un file CSV o Excel, con nomi di colonna leggermente diversi. Compito: un unico script che legge tutti i file di una cartella, porta le colonne a una stessa forma e scrive un solo report Excel con tutte le vendite e un foglio di totali per negozio.

Il cliente e tutti i dati sono inventati.

Informazioni sul servizio

Una lista contatti raccolta negli anni da un negozio, un CRM e vari fogli di calcolo finisce per avere la stessa persona tre volte, telefoni scritti in cinque modi ed email con spazi o refusi. Questo script Python pulisce la sua lista sul suo computer: toglie gli spazi, corregge le maiuscole, scrive i numeri di telefono in un unico formato, segnala le email scritte in modo errato e trova i duplicati per email o telefono, poi salva un file pulito e un file separato con ciò che ha rimosso, così può controllarlo. Ci invii qualche riga con nomi, telefoni ed email inventati ma simili ai suoi, e le sue regole. La lista non arriva mai a noi, e lo script non invia mai nulla da nessuna parte. Verifica la forma di un indirizzo, non se la casella esiste.

Cosa è incluso

  • Cosa riceveUn archivio ZIP con lo script Python, un README con le istruzioni passo passo e, dallo Standard, un file di impostazioni con le sue regole di pulizia; il codice è visibile anche nella pagina dell'ordine.
  • Duplicati trovatiPer email, per telefono o per entrambi
  • Un unico formato di telefonoCon il prefisso internazionale che imposta per i numeri che ne sono privi
  • Righe rimosse conservateUn file separato con ogni riga rimossa o unita
  • Resta sul suo computerLa sua lista non viene mai caricata né inviata
  • Codice leggibileCon commenti, facile cambiare una regola in seguito

Come funziona

  1. 1
    RegoleLei invia righe di esempio inventate e le sue regole per i duplicati
  2. 2
    CodiceScriviamo lo script e la guida per eseguirlo
  3. 3
    Lo proviLo esegue su una copia della lista e controlla le righe rimosse
  4. 4
    ModificheChiede modifiche nei limiti del pacchetto e invia eventuali messaggi di errore

Cosa ci serve da lei

I nomi delle colonne della sua lista e 10-20 righe con nomi, telefoni ed email inventati, scritti come compaiono nei suoi dati reali (con lo stesso tipo di disordine). Le sue regole: cosa conta come duplicato, quale riga tenere (la più recente, la più completa), il prefisso internazionale per i numeri locali e come scrivere i telefoni. CSV o Excel, e il suo sistema: Windows, macOS o Linux. Non invii mai la lista reale.

Le chiederemo:

  • Da dove viene la lista?
  • Cosa conta come duplicato?
  • Quale riga deve restare?
  • Come devono essere i telefoni?

Confronto dei pacchetti

PacchettiBasePulizia base15 €StandardPulizia con regole30 €PremiumStrumento di pulizia60 €
Tempi di consegna1 giorno2 giorni3 giorni
Revisioni123
Codicefino a 150 righefino a 400 righefino a 1.000 righe
File di codice1fino a 3fino a 8
File di impostazioniNoSìSì
Messaggi di errore chiari e un logNoSìSì
Opzioni di avvio e una guida per eseguirlo a orari programmatiNoNoSì
Guida all'installazione e all'avvio (README)SìSìSì
LinguaggioPythonPythonPython
Ordina BaseOrdina StandardOrdina Premium

Pagamento protetto

Paga al momento dell'ordine, ma il denaro viene sbloccato solo per un lavoro accettato.

  • Prezzo fissoIl prezzo del pacchetto non cambia dopo il pagamento.
  • Il denaro viene riservatoAl pagamento, l'importo viene solo riservato. Passa a Dleex quando accetta il lavoro.
  • Verificato prima della consegnaOgni risultato passa un controllo di qualità prima di arrivare a lei, e lo vede nella pagina dell'ordine prima di accettarlo.
  • Revisioni gratuiteRichieda revisioni nell'ambito del suo brief tante volte quante ne prevede il pacchetto.
  • Accettazione dopo 3 giorniSe entro 3 giorni dalla consegna non accetta il lavoro né richiede una revisione, il lavoro viene accettato automaticamente. Se scrive nella chat dell'ordine dopo la consegna, l'ordine resta in attesa; dopo la nostra risposta potremmo far ripartire i 3 giorni e glielo indicheremo nella chat.
  • Rifacimento o rimborso totaleSe il risultato non corrisponde al suo brief e le revisioni non hanno risolto il problema, oppure il lavoro richiede più del doppio dei tempi di consegna previsti, scriva nella chat dell'ordine: rifaremo il lavoro o le rimborseremo l'intero pagamento.
Come funziona →

Domande e risposte

Può dirmi quali email non esistono più?

No. Verifica che un indirizzo sia scritto correttamente (una @, un dominio, niente spazi) e segnala i refusi comuni nel dominio. Se una casella esiste lo sa solo il servizio di posta, e verificarlo non fa parte di questa offerta.

Può riconoscere Mario Rossi e M. Rossi come la stessa persona?

Nel Premium segnala questi quasi-duplicati perché decida lei, invece di unirli da solo, perché i nomi da soli non sono affidabili. I duplicati esatti per email o telefono vengono uniti secondo le sue regole.

La mia lista contatti è al sicuro?

Non lascia mai il suo computer: lo script lo esegue lei, nel suo codice non c'è accesso a internet, e noi vediamo solo le righe inventate che ci invia. Conservi la lista e la sua copia pulita con la stessa cura di prima.

Può aggiungere contatti o trovare email mancanti?

No. Mette in ordine solo i contatti che ha già. Non cerca nessuno e non raccoglie nuovi dati.

Non hai trovato la risposta?

Pacchetti