Kontaktliste bereinigenEntwicklung & Anpassung

Ein Python-Skript, das Ihre eigene Kontaktliste aufräumt: ein Format für Namen, Telefonnummern und E-Mails und keine Duplikate

Meist in 15 Minuten fertigÜberarbeitungen inklusiveQualitätsprüfung
Pakete
ZahlungsschutzMehr dazu
  • Überarbeitungen im Rahmen des Pakets sind kostenlos.
  • Reagieren Sie nicht innerhalb von 3 Tagen nach der Lieferung, gilt die Arbeit automatisch als abgenommen.

Das Geld wird bei der Zahlung reserviert und erst freigegeben, wenn Sie die Arbeit abnehmen.

Ein Python-Skript, das Ihre eigene Kontaktliste aufräumt: ein Format für Namen, Telefonnummern und E-Mails und keine Duplikate

Beispielergebnis

Beispiel für das Standard-Paket

Monatliche Verkaufsdateien von 9 Läden in einem Excel-Bericht zusammenführen

So wird es gestartet

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  Ordner: sales/2026-10, 9 Dateien gefunden
2026-11-02 09:14:03 INFO  shop-01.csv: 1.284 Zeilen
2026-11-02 09:14:04 INFO  shop-02.xlsx: 967 Zeilen
2026-11-02 09:14:04 WARN  shop-07.csv: 3 Zeilen ohne Preis übersprungen (Zeilen 88, 412, 913)
2026-11-02 09:14:05 INFO  Fertig: 10.412 Zeilen -> report-2026-10.xlsx (Tabellenblätter „Verkäufe“ und „Summen“)

Einstellungen statt Code

Die Spaltennamen jedes Ladens stehen in settings.ini, daher ist ein neuer Laden oder eine umbenannte Spalte nur eine Zeile dort:

[columns]
date = Datum, Verkaufsdatum, Tag
product = Artikel, Produkt, Bezeichnung
quantity = Menge, Anzahl, Stk.
price = Preis, Einzelpreis

Ein Teil des Codes

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """Liest die Datei eines Ladens ein und gibt ihr die Spaltennamen des Berichts."""
    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}: keine Spalte für '{name}' (gesucht wurde nach {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

Dateien: ein ZIP-Archiv mit merge_sales.py (310 Zeilen), settings.ini, requirements.txt und einer README dazu, wie man Python installiert, das Skript startet und was jede Meldung im Protokoll bedeutet. Der Kunde startet es auf seinem eigenen Computer.

Kunde: eine kleine Kette von 9 Schreibwarenläden; jeder Laden schickt seine Monatsverkäufe als CSV- oder Excel-Datei, mit leicht unterschiedlichen Spaltennamen. Aufgabe: ein Skript, das jede Datei in einem Ordner einliest, die Spalten in eine einheitliche Form bringt und einen einzigen Excel-Bericht mit allen Verkäufen und einem Tabellenblatt mit Summen pro Laden schreibt.

Kunde und alle Angaben sind erfunden.

Über diese Leistung

Eine Kontaktliste, die über Jahre aus einem Shop, einem CRM und Tabellen zusammengekommen ist, enthält am Ende dieselbe Person dreimal, Telefonnummern in fünf Schreibweisen und E-Mails mit Leerzeichen oder Tippfehlern. Dieses Python-Skript bereinigt Ihre eigene Liste auf Ihrem Computer: Es entfernt überflüssige Leerzeichen, korrigiert Groß- und Kleinschreibung, schreibt Telefonnummern in einem Format, markiert E-Mails mit fehlerhafter Form und findet Duplikate nach E-Mail oder Telefonnummer, dann speichert es eine bereinigte Datei und eine separate Datei mit allem Entfernten, damit Sie es prüfen können. Schicken Sie uns ein paar Zeilen mit erfundenen Namen, Telefonnummern und E-Mails, die wie Ihre aussehen, und Ihre Regeln. Die Liste kommt nie zu uns, und das Skript sendet nie etwas irgendwohin. Es prüft die Form einer Adresse, nicht ob das Postfach existiert.

Was enthalten ist

  • Das erhalten SieEin ZIP-Archiv mit dem Python-Skript, einer README mit Schritt-für-Schritt-Anleitung und ab Standard einer Einstellungsdatei mit Ihren Bereinigungsregeln; der Code wird auch auf der Bestellseite angezeigt.
  • Duplikate gefundenNach E-Mail, nach Telefonnummer oder nach beidem
  • Ein TelefonformatMit der Ländervorwahl, die Sie für Nummern ohne Vorwahl festlegen
  • Entfernte Zeilen bleiben erhaltenEine separate Datei mit jeder entfernten oder zusammengeführten Zeile
  • Bleibt auf Ihrem ComputerIhre Liste wird nie hochgeladen oder versendet
  • Lesbarer CodeMit Kommentaren, eine Regel lässt sich später leicht ändern

So funktioniert es

  1. 1
    RegelnSie schicken erfundene Beispielzeilen und Ihre Regeln für Duplikate
  2. 2
    CodeWir schreiben das Skript und die Anleitung zum Ausführen
  3. 3
    AusprobierenSie führen es an einer Kopie Ihrer Liste aus und sehen die entfernten Zeilen durch
  4. 4
    ÜberarbeitungenSie wünschen Überarbeitungen im Rahmen Ihres Pakets und schicken etwaige Fehlermeldungen

Was wir von Ihnen brauchen

Die Spaltennamen Ihrer Liste und 10–20 Zeilen mit erfundenen Namen, Telefonnummern und E-Mails, geschrieben wie in Ihren echten Daten (mit denselben Arten von Durcheinander). Ihre Regeln: was als Duplikat zählt, welche Zeile bleibt (die neueste, die vollständigste), die Ländervorwahl für lokale Nummern und wie Telefonnummern geschrieben werden sollen. CSV oder Excel und Ihr System: Windows, macOS oder Linux. Schicken Sie nie die echte Liste.

Wir fragen Sie:

  • Woher stammt die Liste?
  • Was zählt als Duplikat?
  • Welche Zeile soll bleiben?
  • Wie sollen Telefonnummern aussehen?

Pakete vergleichen

PaketeBasisEinfache Bereinigung15 €StandardBereinigung mit Regeln30 €PremiumBereinigungstool60 €
Lieferzeit1 Tag2 Tage3 Tage
Überarbeitungen123
Codebis zu 150 Zeilenbis zu 400 Zeilenbis zu 1.000 Zeilen
Code-Dateien1bis zu 3bis zu 8
EinstellungsdateiNeinJaJa
Verständliche Fehlermeldungen und ein ProtokollNeinJaJa
Startoptionen und eine Anleitung für den zeitgesteuerten StartNeinNeinJa
Anleitung zu Installation und Start (README)JaJaJa
SprachePythonPythonPython
Bestellen BasisBestellen StandardBestellen Premium

Zahlungsschutz

Sie bezahlen bei der Bestellung, aber das Geld wird nur für abgenommene Arbeit freigegeben.

  • FestpreisDer Paketpreis ändert sich nach der Zahlung nicht mehr.
  • Das Geld wird reserviertBei der Zahlung wird der Betrag nur reserviert. Freigegeben wird er erst, wenn Sie die Arbeit abnehmen.
  • Vor der Lieferung geprüftJedes Ergebnis durchläuft eine Qualitätsprüfung, bevor es Sie erreicht, und Sie sehen es auf der Bestellseite, bevor Sie es abnehmen.
  • Kostenlose ÜberarbeitungenFordern Sie Überarbeitungen im Rahmen Ihres Briefings so oft an, wie das Paket es erlaubt.
  • Abnahme nach 3 TagenWenn Sie die Arbeit innerhalb von 3 Tagen nach der Lieferung weder abnehmen noch eine Überarbeitung anfordern, gilt sie automatisch als abgenommen. Schreiben Sie nach der Lieferung im Bestell-Chat, wartet die Bestellung; sobald wir antworten, können wir die 3 Tage neu starten und teilen das im Chat mit.
  • Neuanfertigung oder volle RückerstattungWenn das Ergebnis nicht Ihrem Briefing entspricht und die Überarbeitungen das nicht behoben haben oder die Arbeit mehr als doppelt so lange dauert wie die Frist, schreiben Sie im Bestell-Chat: Wir erstellen die Arbeit neu oder erstatten die Zahlung vollständig.
So funktioniert es →

Fragen und Antworten

Kann es mir sagen, welche E-Mail-Adressen tot sind?

Nein. Es prüft, ob eine Adresse korrekt geschrieben ist (ein @, eine Domain, keine Leerzeichen), und markiert häufige Tippfehler in der Domain. Ob ein Postfach existiert, weiß nur der Maildienst, und das zu prüfen, gehört nicht zu dieser Leistung.

Erkennt es Max Mustermann und M. Mustermann als eine Person?

Im Premium-Paket markiert es solche Beinahe-Duplikate zur Entscheidung durch Sie, statt sie selbst zusammenzuführen, denn Namen allein sind nicht zuverlässig. Exakte Duplikate nach E-Mail oder Telefonnummer werden nach Ihren Regeln zusammengeführt.

Ist meine Kontaktliste sicher?

Sie verlässt nie Ihren Computer: Sie führen das Skript selbst aus, sein Code hat keinen Internetzugriff, und wir sehen nur die erfundenen Zeilen, die Sie schicken. Bewahren Sie die Liste und ihre bereinigte Kopie so sicher auf wie bisher.

Kann es Kontakte ergänzen oder fehlende E-Mails finden?

Nein. Es räumt nur die Kontakte auf, die Sie bereits haben. Es recherchiert niemanden und sammelt keine neuen Daten.

Keine Antwort gefunden?

Pakete