Nettoyage de liste de contactsDéveloppement et personnalisation

Un script Python qui met de l’ordre dans votre propre liste de contacts : un seul format pour noms, téléphones et e-mails, et sans doublons

Généralement prêt en 15 minutesRetouches inclusesContrôle qualité
Formules
Paiement protégéEn savoir plus
  • Les retouches prévues par la formule sont gratuites.
  • Sans réponse de votre part dans les 3 jours suivant la livraison, le travail est validé automatiquement.

L’argent est réservé au paiement et versé uniquement une fois le travail validé.

Un script Python qui met de l’ordre dans votre propre liste de contacts : un seul format pour noms, téléphones et e-mails, et sans doublons

Exemple de résultat

Exemple pour la formule Standard

Fusion des fichiers de ventes mensuels de 9 boutiques en un seul rapport Excel

Comment on le lance

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  Dossier : sales/2026-10, 9 fichiers trouvés
2026-11-02 09:14:03 INFO  shop-01.csv : 1 284 lignes
2026-11-02 09:14:04 INFO  shop-02.xlsx : 967 lignes
2026-11-02 09:14:04 WARN  shop-07.csv : 3 lignes sans prix ignorées (lignes 88, 412, 913)
2026-11-02 09:14:05 INFO  Terminé : 10 412 lignes -> report-2026-10.xlsx (feuilles « Ventes » et « Totaux »)

Des paramètres, pas du code

Les noms de colonnes de chaque boutique se trouvent dans settings.ini : une nouvelle boutique ou une colonne renommée, c’est une ligne à modifier :

[columns]
date = Date, Date de vente, Jour
product = Produit, Article, Désignation
quantity = Qté, Quantité, Pièces
price = Prix, Prix unitaire

Un extrait du code

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """Lit le fichier d’une boutique et lui donne les noms de colonnes du rapport."""
    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} : aucune colonne pour '{name}' (recherché : {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

Fichiers : une archive ZIP avec merge_sales.py (310 lignes), settings.ini, requirements.txt et un README qui explique comment installer Python, lancer le script et ce que signifie chaque message du journal. Le client le lance sur son propre ordinateur.

Client : une petite chaîne de 9 papeteries ; chaque boutique envoie ses ventes du mois en fichier CSV ou Excel, avec des noms de colonnes légèrement différents. Tâche : un seul script qui lit chaque fichier d’un dossier, met les colonnes au même format et écrit un rapport Excel unique avec toutes les ventes et une feuille de totaux par boutique.

Le client et tous les détails sont fictifs.

À propos de ce service

Une liste de contacts accumulée pendant des années depuis une boutique, un CRM et des tableurs finit avec la même personne trois fois, des téléphones écrits de cinq façons et des e-mails avec des espaces ou des fautes. Ce script Python nettoie votre propre liste sur votre ordinateur : il supprime les espaces superflus, corrige les majuscules, écrit les numéros de téléphone dans un seul format, signale les e-mails mal formés et repère les doublons par e-mail ou par téléphone, puis enregistre un fichier propre et un fichier séparé de ce qu’il a retiré, pour que vous puissiez vérifier. Envoyez-nous quelques lignes avec des noms, téléphones et e-mails fictifs qui ressemblent aux vôtres, et vos règles. La liste ne nous parvient jamais, et le script n’envoie rien nulle part. Il vérifie la forme d’une adresse, pas l’existence de la boîte mail.

Ce qui est inclus

  • Ce que vous recevezUne archive ZIP avec le script Python, un README avec des instructions pas à pas et, dès Standard, un fichier de paramètres avec vos règles de nettoyage ; le code est aussi affiché sur la page de la commande.
  • Doublons repérésPar e-mail, par téléphone ou par les deux
  • Un seul format de téléphoneAvec l’indicatif que vous fixez pour les numéros qui n’en ont pas
  • Lignes retirées conservéesUn fichier séparé avec chaque ligne retirée ou fusionnée
  • Reste sur votre ordinateurVotre liste n’est jamais envoyée en ligne
  • Code lisibleAvec des commentaires, pour modifier facilement une règle plus tard

Comment ça marche

  1. 1
    ConsignesVous envoyez des lignes d’exemple fictives et vos règles de doublons
  2. 2
    CodeNous écrivons le script et le guide pour le lancer
  3. 3
    Testez-leVous le lancez sur une copie de votre liste et parcourez les lignes retirées
  4. 4
    RetouchesVous demandez des retouches selon votre formule et envoyez les éventuels messages d’erreur

Ce dont nous avons besoin

Les noms de colonnes de votre liste et 10 à 20 lignes avec des noms, téléphones et e-mails fictifs écrits comme dans vos vraies données (avec le même genre de désordre). Vos règles : ce qui compte comme doublon, quelle ligne garder (la plus récente, la plus complète), l’indicatif des numéros locaux et le format voulu des téléphones. CSV ou Excel, et votre système : Windows, macOS ou Linux. N’envoyez jamais la vraie liste.

Nous vous demanderons :

  • D’où vient la liste ?
  • Qu’est-ce qui compte comme doublon ?
  • Quelle ligne garder ?
  • Quel format pour les téléphones ?

Comparer les formules

FormulesEssentielNettoyage de base15 €StandardNettoyage avec règles30 €PremiumOutil de nettoyage60 €
Délai1 jour2 jours3 jours
Retouches123
Codejusqu’à 150 lignesjusqu’à 400 lignesjusqu’à 1 000 lignes
Fichiers de code1jusqu’à 3jusqu’à 8
Fichier de paramètresNonOuiOui
Messages d’erreur clairs et journalNonOuiOui
Options de lancement et guide pour l’exécution planifiéeNonNonOui
Guide d’installation et d’utilisation (README)OuiOuiOui
LangagePythonPythonPython
Commander EssentielCommander StandardCommander Premium

Paiement protégé

Vous payez à la commande, mais l’argent n’est versé que pour un travail validé.

  • Prix fixeLe prix de la formule ne change pas après le paiement.
  • L’argent est réservéAu paiement, le montant est seulement réservé. Il n’est versé à Dleex qu’une fois le travail validé.
  • Vérifié avant livraisonChaque résultat passe un contrôle qualité avant de vous parvenir, et vous le voyez sur la page de la commande avant de le valider.
  • Retouches gratuitesDemandez des retouches dans le cadre de votre brief autant de fois que la formule le permet.
  • Validation au bout de 3 joursSi, dans les 3 jours suivant la livraison, vous n’avez ni validé le travail ni demandé de retouches, il est validé automatiquement. Si vous écrivez dans le chat de la commande après la livraison, la commande est mise en attente ; après notre réponse, nous pourrons relancer le délai de 3 jours et vous le signalerons dans le chat.
  • Travail refait ou remboursement intégralSi le résultat ne correspond pas à votre brief et que les retouches n’y ont rien changé, ou si le travail prend plus du double du délai prévu, écrivez dans le chat de la commande : nous referons le travail ou vous rembourserons intégralement.
Comment ça marche →

Questions et réponses

Peut-il m’indiquer les e-mails inactifs ?

Non. Il vérifie qu’une adresse est bien écrite (un seul @, un domaine, aucun espace) et signale les fautes courantes dans le domaine. Seul le service de messagerie sait si une boîte existe, et cette vérification ne fait pas partie de cette offre.

Peut-il reconnaître Jean Dupont et J. Dupont comme une seule personne ?

En Premium, il signale ces quasi-doublons pour que vous décidiez, au lieu de les fusionner seul, car les noms à eux seuls ne sont pas fiables. Les doublons exacts par e-mail ou téléphone sont fusionnés selon vos règles.

Ma liste de contacts est-elle en sécurité ?

Elle ne quitte jamais votre ordinateur : vous lancez le script vous-même, son code n’accède pas à Internet, et nous ne voyons que les lignes fictives que vous envoyez. Conservez la liste et sa copie nettoyée avec autant de soin qu’avant.

Peut-il ajouter des contacts ou retrouver des e-mails manquants ?

Non. Il met seulement en ordre les contacts que vous avez déjà. Il ne recherche personne et ne collecte aucune donnée nouvelle.

Vous n’avez pas trouvé la réponse ?

Formules