Porządkowanie listy kontaktówTworzenie i dostosowywanie

Skrypt w Pythonie, który porządkuje Twoją własną listę kontaktów: jeden format imion, telefonów i e-maili, bez duplikatów

Zwykle gotowe w ok. 15 minutPoprawki w cenieKontrola jakości
Pakiety
Ochrona płatnościSzczegóły
  • Poprawki w ramach pakietu są bezpłatne.
  • Jeśli nie odpowiesz w ciągu 3 dni od dostarczenia pracy, zostanie ona zaakceptowana automatycznie.

Pieniądze są rezerwowane w chwili płatności i przekazywane dopiero po akceptacji pracy.

Skrypt w Pythonie, który porządkuje Twoją własną listę kontaktów: jeden format imion, telefonów i e-maili, bez duplikatów

Przykładowy rezultat

Przykład dla pakietu Standard

Łączenie miesięcznych plików sprzedaży 9 sklepów w jeden raport w Excelu

Jak się go uruchamia

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  Folder: sales/2026-10, znaleziono 9 plików
2026-11-02 09:14:03 INFO  shop-01.csv: 1284 wiersze
2026-11-02 09:14:04 INFO  shop-02.xlsx: 967 wierszy
2026-11-02 09:14:04 WARN  shop-07.csv: pominięto 3 wiersze bez ceny (linie 88, 412, 913)
2026-11-02 09:14:05 INFO  Gotowe: 10 412 wierszy -> report-2026-10.xlsx (arkusze „Sprzedaż” i „Podsumowanie”)

Ustawienia zamiast kodu

Nazwy kolumn każdego sklepu są zapisane w settings.ini, więc nowy sklep albo kolumna o zmienionej nazwie to po prostu jeden wiersz w tym pliku:

[columns]
date = Data, Data sprzedaży, Dzień
product = Produkt, Towar, Nazwa
quantity = Ilość, Szt., Liczba sztuk
price = Cena, Cena jedn.

Fragment kodu

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """Wczytuje plik jednego sklepu i nadaje mu nazwy kolumn raportu."""
    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}: brak kolumny dla '{name}' (szukano: {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

Pliki: archiwum ZIP z plikami merge_sales.py (310 wierszy), settings.ini, requirements.txt oraz README, które opisuje instalację Pythona, uruchomienie skryptu i znaczenie każdego komunikatu w dzienniku. Klient uruchamia skrypt na własnym komputerze.

Klient: mała sieć 9 sklepów papierniczych; każdy sklep przesyła sprzedaż za miesiąc w pliku CSV lub Excel, z nieco innymi nazwami kolumn. Zadanie: jeden skrypt, który wczytuje każdy plik z folderu, sprowadza kolumny do jednego układu i zapisuje jeden raport w Excelu z całą sprzedażą oraz arkuszem podsumowań według sklepów.

Klient i wszystkie dane są wymyślone.

O usłudze

Lista kontaktów zbierana latami ze sklepu, CRM i arkuszy w końcu zawiera tę samą osobę trzy razy, telefony zapisane na pięć sposobów i e-maile ze spacjami lub literówkami. Ten skrypt w Pythonie czyści Twoją własną listę na Twoim komputerze: usuwa zbędne spacje, poprawia wielkie litery, zapisuje numery telefonów w jednym formacie, oznacza e-maile o błędnej formie i wyszukuje duplikaty po e-mailu lub telefonie, a potem zapisuje czysty plik i osobny plik z tym, co usunął, żebyś mógł to sprawdzić. Prześlij nam kilka wierszy ze zmyślonymi imionami, telefonami i e-mailami, które wyglądają jak Twoje, oraz swoje zasady. Lista nigdy do nas nie trafia, a skrypt nigdzie niczego nie wysyła. Sprawdza formę adresu, a nie to, czy skrzynka istnieje.

Co obejmuje usługa

  • Co otrzymaszArchiwum ZIP ze skryptem w Pythonie, plikiem README z instrukcją krok po kroku oraz, od pakietu Standard, plikiem ustawień z Twoimi zasadami porządkowania; kod widać też na stronie zamówienia.
  • Wyszukiwanie duplikatówPo e-mailu, po telefonie albo po obu naraz
  • Jeden format telefonuZ ustalonym przez Ciebie numerem kierunkowym kraju dla numerów bez niego
  • Usunięte wiersze zachowaneOsobny plik z każdym usuniętym lub scalonym wierszem
  • Zostaje na Twoim komputerzeTwoja lista nigdy nie jest nigdzie przesyłana
  • Czytelny kodZ komentarzami, łatwo później zmienić zasadę

Jak to działa

  1. 1
    ZasadyPrzysyłasz zmyślone przykładowe wiersze i swoje zasady dotyczące duplikatów
  2. 2
    KodPiszemy skrypt i instrukcję uruchomienia
  3. 3
    WypróbujUruchamiasz go na kopii listy i przeglądasz usunięte wiersze
  4. 4
    ZmianyZgłaszasz poprawki w ramach pakietu i przesyłasz ewentualny komunikat o błędzie

Czego potrzebujemy od Ciebie

Nazwy kolumn Twojej listy i 10-20 wierszy ze zmyślonymi imionami, telefonami i e-mailami zapisanymi tak, jak w Twoich prawdziwych danych (z tym samym rodzajem bałaganu). Twoje zasady: co uznajemy za duplikat, który wiersz zachować (najnowszy, najpełniejszy), numer kierunkowy kraju dla lokalnych numerów i jak mają być zapisane telefony. CSV czy Excel i Twój system: Windows, macOS lub Linux. Nigdy nie przesyłaj prawdziwej listy.

Zapytamy Cię:

  • Skąd pochodzi lista?
  • Co uznajemy za duplikat?
  • Który wiersz ma zostać?
  • Jak mają wyglądać telefony?

Porównaj pakiety

PakietyPodstawowyPodstawowe porządkowanie61 złStandardPorządkowanie według zasad125 złPremiumNarzędzie do porządkowania252 zł
Termin1 dzień2 dni3 dni
Poprawki123
Koddo 150 wierszydo 400 wierszydo 1000 wierszy
Pliki z kodem1do 3do 8
Plik ustawieńNieTakTak
Czytelne komunikaty o błędach i logNieTakTak
Opcje uruchamiania i instrukcja uruchamiania według harmonogramuNieNieTak
Instrukcja instalacji i uruchomienia (README)TakTakTak
JęzykPythonPythonPython
Zamów PodstawowyZamów StandardZamów Premium

Ochrona płatności

Płacisz przy składaniu zamówienia, ale pieniądze są przekazywane tylko za zaakceptowaną pracę.

  • Stała cenaCena pakietu nie zmienia się po zapłacie.
  • Pieniądze są zarezerwowanePrzy płatności kwota jest tylko rezerwowana. Serwis otrzymuje ją dopiero po akceptacji pracy.
  • Sprawdzone przed dostarczeniemKażdy wynik przechodzi kontrolę jakości, zanim do Ciebie trafi, a przed akceptacją widzisz go na stronie zamówienia.
  • Bezpłatne poprawkiProś o poprawki w ramach briefu tyle razy, ile przewiduje pakiet.
  • Akceptacja po 3 dniachJeśli w ciągu 3 dni od dostarczenia pracy ani jej nie zaakceptujesz, ani nie poprosisz o poprawki, zostanie zaakceptowana automatycznie. Jeśli po dostarczeniu napiszesz na czacie zamówienia, zamówienie czeka; po naszej odpowiedzi możemy ponownie uruchomić odliczanie 3 dni i poinformujemy o tym na czacie.
  • Ponowne wykonanie lub pełny zwrot pieniędzyJeśli wynik nie odpowiada Twojemu briefowi, a poprawki tego nie naprawiły, lub praca trwa ponad dwa razy dłużej niż termin, napisz na czacie zamówienia: wykonamy pracę ponownie albo zwrócimy całą płatność.
Jak to działa →

Pytania i odpowiedzi

Czy powie mi, które e-maile są martwe?

Nie. Sprawdza, czy adres jest poprawnie zapisany (jedna @, domena, brak spacji), i oznacza typowe literówki w domenie. Czy skrzynka istnieje, wie tylko serwis pocztowy, a sprawdzanie tego nie wchodzi w zakres tej oferty.

Czy rozpozna Jana Kowalskiego i J. Kowalskiego jako jedną osobę?

W pakiecie Premium oznacza takie prawie-duplikaty, żebyś sam zdecydował, zamiast scalać je na własną rękę, bo same nazwiska nie są wiarygodne. Dokładne duplikaty po e-mailu lub telefonie są scalane według Twoich zasad.

Czy moja lista kontaktów jest bezpieczna?

Nigdy nie opuszcza Twojego komputera: skrypt uruchamiasz sam, jego kod nie łączy się z internetem, a my widzimy tylko zmyślone wiersze, które przesyłasz. Przechowuj listę i jej czystą kopię tak samo bezpiecznie jak dotąd.

Czy może dodać kontakty albo znaleźć brakujące e-maile?

Nie. Porządkuje tylko kontakty, które już masz. Nikogo nie wyszukuje i nie zbiera nowych danych.

Nie ma tu odpowiedzi?

Pakiety