Merapikan daftar kontakPengembangan & Kustomisasi

Skrip Python yang merapikan daftar kontak Anda sendiri: satu format untuk nama, telepon, dan email, tanpa duplikat

Biasanya selesai dalam 15 menitTermasuk revisiPemeriksaan kualitas
Paket
Perlindungan pembayaranSelengkapnya
  • Revisi dalam batas paket tidak dikenai biaya.
  • Jika Anda tidak merespons dalam 3 hari setelah penyerahan hasil, hasil kerja diterima secara otomatis.

Uang ditahan saat Anda membayar dan diteruskan hanya setelah Anda menerima hasil kerja.

Skrip Python yang merapikan daftar kontak Anda sendiri: satu format untuk nama, telepon, dan email, tanpa duplikat

Contoh hasil

Contoh untuk paket Standar

Menggabungkan file penjualan bulanan 9 toko menjadi satu laporan Excel

Cara menjalankannya

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  Folder: sales/2026-10, ditemukan 9 file
2026-11-02 09:14:03 INFO  shop-01.csv: 1.284 baris
2026-11-02 09:14:04 INFO  shop-02.xlsx: 967 baris
2026-11-02 09:14:04 WARN  shop-07.csv: 3 baris tanpa harga dilewati (baris 88, 412, 913)
2026-11-02 09:14:05 INFO  Selesai: 10.412 baris -> report-2026-10.xlsx (sheet "Penjualan" dan "Total")

Pengaturan, bukan kode

Nama kolom setiap toko disimpan di settings.ini, jadi toko baru atau kolom yang berganti nama cukup ditambahkan satu baris di sana:

[columns]
date = Tanggal, Tanggal penjualan, Hari
product = Produk, Barang, Nama
quantity = Qty, Jumlah, Pcs
price = Harga, Harga satuan

Sebagian kode

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """Membaca file satu toko dan memberinya nama kolom laporan."""
    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}: tidak ada kolom untuk '{name}' (dicari: {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

File: arsip ZIP berisi merge_sales.py (310 baris), settings.ini, requirements.txt, dan README tentang cara memasang Python, menjalankan skrip, dan arti setiap pesan di log. Klien menjalankannya di komputernya sendiri.

Klien: jaringan kecil 9 toko alat tulis; setiap toko mengirim penjualan bulanannya sebagai file CSV atau Excel, dengan nama kolom yang sedikit berbeda. Tugas: satu skrip yang membaca setiap file di sebuah folder, menyeragamkan kolomnya, dan menulis satu laporan Excel berisi semua penjualan serta sheet total per toko.

Klien dan semua datanya fiktif.

Tentang layanan ini

Daftar kontak yang terkumpul bertahun-tahun dari toko, CRM, dan spreadsheet akhirnya berisi orang yang sama tiga kali, nomor telepon yang ditulis dengan lima cara, dan email dengan spasi atau salah ketik. Skrip Python ini membersihkan daftar Anda sendiri di komputer Anda: menghapus spasi berlebih, memperbaiki huruf kapital, menulis nomor telepon dalam satu format, menandai email yang formatnya rusak, dan menemukan duplikat berdasarkan email atau telepon, lalu menyimpan file bersih dan file terpisah berisi apa yang dihapus, agar bisa Anda periksa. Kirimkan beberapa baris dengan nama, telepon, dan email karangan yang mirip dengan data Anda, serta aturan Anda. Daftar itu tidak pernah sampai ke kami, dan skrip tidak pernah mengirim apa pun ke mana pun. Skrip memeriksa format alamat, bukan apakah kotak suratnya ada.

Yang termasuk

  • Yang Anda dapatkanArsip ZIP berisi skrip Python, README dengan petunjuk langkah demi langkah, dan mulai Standar, file pengaturan dengan aturan pembersihan Anda; kodenya juga ditampilkan di halaman pesanan.
  • Duplikat ditemukanBerdasarkan email, telepon, atau keduanya sekaligus
  • Satu format teleponDengan kode negara yang Anda tetapkan untuk nomor tanpa kode
  • Baris yang dihapus tetap disimpanFile terpisah berisi setiap baris yang dihapus atau digabung
  • Tetap di komputer AndaDaftar Anda tidak pernah diunggah atau dikirim
  • Kode yang mudah dibacaDengan komentar, aturan mudah diubah nanti

Cara kerja

  1. 1
    AturanAnda mengirim baris contoh karangan dan aturan duplikat Anda
  2. 2
    KodeKami menulis skrip dan panduan menjalankannya
  3. 3
    CobaAnda menjalankannya di salinan daftar dan memeriksa baris yang dihapus
  4. 4
    RevisiAnda meminta revisi sesuai paket dan mengirim pesan error jika ada

Yang kami butuhkan dari Anda

Nama kolom daftar Anda dan 10–20 baris dengan nama, telepon, dan email karangan yang ditulis seperti di data asli Anda (dengan jenis kekacauan yang sama). Aturan Anda: apa yang dihitung sebagai duplikat, baris mana yang dipertahankan (yang terbaru, yang paling lengkap), kode negara untuk nomor telepon lokal, dan bagaimana nomor telepon ditulis. CSV atau Excel, dan sistem Anda: Windows, macOS, atau Linux. Jangan pernah mengirim daftar aslinya.

Kami akan menanyakan:

  • Dari mana daftar itu berasal?
  • Apa yang dihitung sebagai duplikat?
  • Baris mana yang dipertahankan?
  • Seperti apa format teleponnya?

Bandingkan paket

PaketDasarPembersihan dasarRp 272.000StandarPembersihan dengan aturanRp 561.000PremiumAlat pembersihRp 1.139.000
Tenggat1 hari2 hari3 hari
Revisi123
Kodehingga 150 barishingga 400 barishingga 1.000 baris
File kode1hingga 3hingga 8
File pengaturanTidakYaYa
Pesan error yang jelas dan logTidakYaYa
Opsi menjalankan dan panduan menjalankannya terjadwalTidakTidakYa
Panduan instalasi dan menjalankan (README)YaYaYa
BahasaPythonPythonPython
Pesan DasarPesan StandarPesan Premium

Perlindungan pembayaran

Anda membayar saat memesan, tetapi uangnya diteruskan hanya untuk hasil kerja yang diterima.

  • Harga pastiHarga paket tidak berubah setelah Anda membayar.
  • Uang ditahanSaat Anda membayar, jumlahnya hanya ditahan. Dana diteruskan ke Dleex setelah Anda menerima hasil kerja.
  • Diperiksa sebelum penyerahanSetiap hasil melewati pemeriksaan kualitas sebelum sampai kepada Anda, dan Anda dapat melihatnya di halaman pesanan sebelum menerimanya.
  • Revisi gratisMinta revisi sesuai brief Anda sebanyak yang diizinkan paket.
  • Diterima setelah 3 hariJika dalam 3 hari setelah penyerahan hasil Anda tidak menerima hasil kerja maupun meminta revisi, hasil kerja diterima secara otomatis. Jika Anda menulis di chat pesanan setelah penyerahan hasil, pesanan akan menunggu; setelah kami menjawab, kami dapat memulai ulang hitungan 3 hari dan akan memberitahukannya di chat.
  • Dikerjakan ulang atau pengembalian dana penuhJika hasilnya tidak sesuai brief Anda dan revisi tidak memperbaikinya, atau pengerjaan memakan waktu lebih dari dua kali tenggatnya, tulis di chat pesanan: kami akan mengerjakan ulang atau mengembalikan pembayaran secara penuh.
Cara kerjanya →

Tanya jawab

Bisakah skrip memberi tahu email mana yang sudah mati?

Tidak. Skrip memeriksa bahwa alamat ditulis dengan benar (satu @, domain, tanpa spasi) dan menandai salah ketik umum pada domain. Apakah sebuah kotak surat ada, hanya layanan email yang tahu, dan pengecekan itu tidak termasuk dalam penawaran ini.

Bisakah skrip mengenali Budi Santoso dan B. Santoso sebagai satu orang?

Di Premium, skrip menandai kemiripan seperti itu untuk Anda putuskan, alih-alih menggabungkannya sendiri, karena nama saja tidak bisa diandalkan. Duplikat persis berdasarkan email atau telepon digabung sesuai aturan Anda.

Apakah daftar kontak saya aman?

Daftar itu tidak pernah keluar dari komputer Anda: Anda menjalankan skrip sendiri, kodenya tidak mengakses internet, dan kami hanya melihat baris karangan yang Anda kirim. Simpan daftar dan salinan bersihnya seaman sebelumnya.

Bisakah skrip menambah kontak atau mencari email yang hilang?

Tidak. Skrip hanya merapikan kontak yang sudah Anda miliki. Skrip tidak mencari siapa pun atau mengumpulkan data baru.

Tidak menemukan jawabannya?

Paket