Kişi listesi temizlemeGeliştirme ve Özelleştirme

Kendi kişi listenizi düzenleyen bir Python betiği: adlar, telefonlar ve e-postalar için tek format, kopya yok

Genellikle 15 dakika içinde hazırRevizyonlar dahilKalite kontrolü
Paketler
Ödeme korumasıAyrıntılar
  • Paket kapsamındaki revizyonlar ücretsizdir.
  • Teslimattan sonraki 3 gün içinde yanıt vermezseniz iş otomatik olarak onaylanır.

Para, ödeme yaptığınızda bloke edilir ve yalnızca işi onayladığınızda aktarılır.

Kendi kişi listenizi düzenleyen bir Python betiği: adlar, telefonlar ve e-postalar için tek format, kopya yok

Örnek sonuç

Standart paket için örnek

Merging the monthly sales files of 9 shops into one Excel report

How it is run

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  Folder: sales/2026-10, 9 files found
2026-11-02 09:14:03 INFO  shop-01.csv: 1,284 rows
2026-11-02 09:14:04 INFO  shop-02.xlsx: 967 rows
2026-11-02 09:14:04 WARN  shop-07.csv: 3 rows without a price skipped (lines 88, 412, 913)
2026-11-02 09:14:05 INFO  Done: 10,412 rows -> report-2026-10.xlsx (sheets "Sales" and "Totals")

Settings, not code

The column names of each shop live in settings.ini, so a new shop or a renamed column is a line there:

[columns]
date = Date, Sale date, Day
product = Product, Item, Name
quantity = Qty, Quantity, Pcs
price = Price, Unit price

A part of the code

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """Reads one shop's file and gives it the report's column names."""
    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}: no column for '{name}' (looked for {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

Files: a ZIP archive with merge_sales.py (310 lines), settings.ini, requirements.txt and a README with installing Python, running the script and what each message in the log means. The client runs it on their own computer.

Client: a small chain of 9 stationery shops; each shop sends its sales for the month as a CSV or Excel file, with slightly different column names. Task: one script that reads every file in a folder, brings the columns to one shape, and writes a single Excel report with all sales and a sheet of totals by shop.

Müşteri ve tüm ayrıntılar kurgusaldır.

Bu hizmet hakkında

Yıllar içinde bir mağazadan, bir CRM'den ve tablolardan toplanan bir kişi listesinde sonunda aynı kişi üç kez, telefonlar beş farklı biçimde ve boşluklu ya da yazım hatalı e-postalar bulunur. Bu Python betiği kendi listenizi bilgisayarınızda temizler: boşlukları kırpar, büyük harfleri düzeltir, telefon numaralarını tek bir formatta yazar, biçimi bozuk e-postaları işaretler ve e-postaya ya da telefona göre kopyaları bulur; ardından temiz bir dosya ve kontrol edebilmeniz için çıkardıklarını içeren ayrı bir dosya kaydeder. Sizinkilere benzeyen uydurma ad, telefon ve e-postalarla birkaç satır ve kurallarınızı gönderin. Liste bize asla gelmez ve betik hiçbir yere hiçbir şey göndermez. Bir adresin biçimini kontrol eder, posta kutusunun var olup olmadığını değil.

Neler dahil

  • Neler alırsınızPython betiğini, adım adım talimatlar içeren bir README dosyasını ve Standart paketten itibaren temizleme kurallarınızı içeren bir ayar dosyasını barındıran bir ZIP arşivi; kod sipariş sayfasında da gösterilir.
  • Kopyalar bulunurE-postaya, telefona ya da ikisine birlikte göre
  • Tek telefon formatıÜlke kodu olmayan numaralar için belirlediğiniz ülke koduyla
  • Çıkarılan satırlar saklanırÇıkarılan ya da birleştirilen her satırı içeren ayrı bir dosya
  • Bilgisayarınızda kalırListeniz asla yüklenmez ya da gönderilmez
  • Okunabilir kodYorumlarla; sonradan kural değiştirmek kolay

Nasıl çalışır

  1. 1
    KurallarUydurma örnek satırlar ve kopyalar için kurallarınızı gönderirsiniz
  2. 2
    KodBetiği ve çalıştırma kılavuzunu yazarız
  3. 3
    DeneyinListenizin bir kopyasında çalıştırır ve çıkarılan satırlara göz atarsınız
  4. 4
    DeğişikliklerPaketiniz kapsamında değişiklik ister, varsa hata mesajını gönderirsiniz

Sizden neler gerekiyor

Listenizin sütun adları ve gerçek verilerinizde göründüğü şekilde (aynı türden dağınıklıklarla) yazılmış uydurma ad, telefon ve e-postalarla 10-20 satır. Kurallarınız: neyin kopya sayılacağı, hangi satırın kalacağı (en yeni, en dolu), yerel telefon numaraları için ülke kodu ve telefonların nasıl yazılacağı. CSV ya da Excel ve sisteminiz: Windows, macOS ya da Linux. Gerçek listeyi asla göndermeyin.

Size soracaklarımız:

  • Liste nereden geliyor?
  • Ne kopya sayılır?
  • Hangi satır kalmalı?
  • Telefonlar nasıl görünmeli?

Paketleri karşılaştırın

PaketlerTemelTemel temizlik$16StandartKurallı temizlik$33PremiumTemizleme aracı$67
Teslim süresi1 gün2 gün3 gün
Revizyonlar123
Koden fazla 150 satıren fazla 400 satıren fazla 1.000 satır
Kod dosyası1en fazla 3en fazla 8
Ayar dosyasıHayırEvetEvet
Anlaşılır hata mesajları ve logHayırEvetEvet
Çalıştırma seçenekleri ve zamanlanmış çalıştırma kılavuzuHayırHayırEvet
Kurulum ve çalıştırma kılavuzu (README)EvetEvetEvet
DilPythonPythonPython
Sipariş ver TemelSipariş ver StandartSipariş ver Premium

Ödeme koruması

Sipariş verirken ödersiniz, ancak para yalnızca onaylanan iş için aktarılır.

  • Sabit fiyatPaket fiyatı, ödeme yaptıktan sonra değişmez.
  • Para bloke edilirÖdeme yaptığınızda tutar yalnızca bloke edilir. İşi onayladığınızda hizmete aktarılır.
  • Teslimattan önce kontrolHer sonuç size ulaşmadan önce kalite kontrolünden geçer ve onaylamadan önce sipariş sayfasında görürsünüz.
  • Ücretsiz revizyonlarBrifiniz kapsamında, paketin izin verdiği sayıda değişiklik isteyin.
  • 3 gün sonra onayTeslimattan sonraki 3 gün içinde işi onaylamaz veya değişiklik istemezseniz iş otomatik olarak onaylanır. Teslimattan sonra sipariş sohbetine yazarsanız sipariş bekletilir; yanıt verdikten sonra 3 günlük süreyi yeniden başlatabiliriz ve bunu sohbette bildiririz.
  • Yeniden yapım veya tam iadeSonuç brifinize uymuyorsa ve revizyonlar sorunu çözmediyse ya da iş teslim süresinin iki katından uzun sürerse sipariş sohbetine yazın: işi yeniden yaparız veya ödemenin tamamını iade ederiz.
Nasıl çalışır →

Sorular ve yanıtlar

Hangi e-postaların ölü olduğunu söyleyebilir mi?

Hayır. Bir adresin doğru yazıldığını kontrol eder (tek @, bir alan adı, boşluk yok) ve alan adındaki yaygın yazım hatalarını işaretler. Bir posta kutusunun var olup olmadığını yalnızca e-posta servisi bilir ve bunu kontrol etmek bu teklifin parçası değildir.

Ahmet Yılmaz ve A. Yılmaz'ı tek kişi olarak bulabilir mi?

Premium pakette bu tür benzer kopyaları kendi başına birleştirmek yerine karar vermeniz için işaretler, çünkü yalnızca adlar güvenilir değildir. E-postaya ya da telefona göre tam kopyalar kurallarınıza göre birleştirilir.

Kişi listem güvende mi?

Bilgisayarınızdan asla çıkmaz: betiği kendiniz çalıştırırsınız, kodunda internet erişimi yoktur ve biz yalnızca gönderdiğiniz uydurma satırları görürüz. Listeyi ve temiz kopyasını önceki kadar güvenli saklayın.

Kişi ekleyebilir ya da eksik e-postaları bulabilir mi?

Hayır. Yalnızca zaten sahip olduğunuz kişileri düzenler. Kimseyi araştırmaz ya da yeni veri toplamaz.

Yanıtınızı bulamadınız mı?

Paketler