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.

Esempio di risultato
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
I contatti esportati da un negozio, da un CRM o dalle iscrizioni agli eventi raramente corrispondono a ciò che un servizio di newsletter vuole importare: altri nomi di colonna, nome e cognome nella stessa cella, tag in posti strani, persone disiscritte ancora in lista. Questo script Python legge le sue esportazioni e scrive un unico CSV pulito nella struttura di importazione del suo servizio: nomi separati se serve, campi e tag abbinati, email scritte male e duplicati esclusi e, dallo Standard, tenute solo le persone con il consenso e rimosse quelle disiscritte, con un file delle righe scartate da controllare. È per i suoi contatti che hanno accettato di ricevere le sue comunicazioni, mai per liste acquistate o raccolte dal web. Gira sul suo computer e non si collega al servizio; il file lo importa lei.
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 l'abbinamento di campi e tag; il codice è visibile anche nella pagina dell'ordine.
- La struttura del suo servizioSecondo il suo modello di importazione o un file di esempio
- Consenso rispettatoDallo Standard, solo chi ha acconsentito, nessun disiscritto
- Fuori duplicati e refusiIndirizzi scritti male e ripetizioni esclusi
- Righe scartate conservateUn file separato che mostra cosa è stato escluso e perché
- Codice leggibileCon commenti, facile aggiungere un campo in seguito
Come funziona
- 1EsempiLei invia righe inventate da ogni esportazione e il formato di importazione del suo servizio
- 2CodiceScriviamo lo script e la guida per eseguirlo
- 3Lo proviLo esegue, controlla le righe scartate e importa una piccola lista di prova
- 4ModificheChiede modifiche nei limiti del pacchetto e invia eventuali messaggi di errore
Cosa ci serve da lei
L'intestazione e 10-20 righe di ogni esportazione con nomi ed email inventati ma con la stessa struttura, quale colonna indica il consenso e quale la disiscrizione, il servizio di newsletter che usa e il suo modello di importazione o un link alla pagina di aiuto sull'importazione, e come impostare tag o segmenti. Come sono stati raccolti i contatti (il suo negozio, un modulo di iscrizione, eventi). Non invii mai la lista reale.
Le chiederemo:
- Da dove vengono i contatti?
- In quale servizio di newsletter li importerà?
- Come è registrato il consenso?
- Le servono tag o segmenti?
Confronto dei pacchetti
| Pacchetti | BaseUn'esportazione, un formato15 € | StandardEsportazione con impostazioni30 € | PremiumStrumento contatti60 € |
|---|---|---|---|
| Tempi di consegna | 1 giorno | 2 giorni | 3 giorni |
| Revisioni | 1 | 2 | 3 |
| Codice | fino a 150 righe | fino a 400 righe | fino a 1.000 righe |
| File di codice | 1 | fino a 3 | fino a 8 |
| File di impostazioni | No | Sì | Sì |
| Messaggi di errore chiari e un log | No | Sì | Sì |
| Opzioni di avvio e una guida per eseguirlo a orari programmati | No | No | Sì |
| Guida all'installazione e all'avvio (README) | Sì | Sì | Sì |
| Linguaggio | Python | Python | Python |
| Ordina Base | Ordina Standard | Ordina 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.
Domande e risposte
Posso usarlo su una lista che ho comprato?
No. È per i suoi contatti che hanno accettato di ricevere le sue email. Le liste acquistate o raccolte dal web violano le regole dei servizi di newsletter e la legge di molti paesi.
Carica i contatti nel servizio?
No. Crea il file; lo importa lei nel suo account del servizio di newsletter, che le chiede anche di confermare che i contatti hanno dato il consenso.
Verificherà che le email esistano?
Verifica che ogni indirizzo sia scritto correttamente e segnala i refusi comuni nel dominio. Se una casella esiste lo sa solo il servizio di posta, e il suo servizio di newsletter segnala i rimbalzi dopo l'invio.
La mia lista contatti è al sicuro?
Resta sul suo computer: lo script lo esegue lei, e noi vediamo solo le righe inventate che ci invia.
Non hai trovato la risposta?