تنظيف قائمة جهات الاتصالالتطوير والتخصيص

سكربت Python يرتب قائمة جهات الاتصال الخاصة بك: تنسيق واحد للأسماء والهواتف والبريد الإلكتروني، بلا تكرارات

جاهز عادةً خلال 15 دقيقةالتعديلات مشمولةفحص الجودة
الباقات
حماية الدفعالتفاصيل
  • التعديلات ضمن الباقة مجانية.
  • إذا لم تردّ خلال 3 أيام من التسليم، يُقبل العمل تلقائيًا.

يُحجز المبلغ عند الدفع ولا يُحوَّل إلا بعد قبولك العمل.

سكربت Python يرتب قائمة جهات الاتصال الخاصة بك: تنسيق واحد للأسماء والهواتف والبريد الإلكتروني، بلا تكرارات

مثال على النتيجة

مثال على الباقة القياسية

دمج ملفات المبيعات الشهرية لـ 9 متاجر في تقرير Excel واحد

طريقة التشغيل

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  المجلد: sales/2026-10، عُثر على 9 ملفات
2026-11-02 09:14:03 INFO  shop-01.csv: 1,284 صفًا
2026-11-02 09:14:04 INFO  shop-02.xlsx: 967 صفًا
2026-11-02 09:14:04 WARN  shop-07.csv: تُخطّيت 3 صفوف بلا سعر (الأسطر 88، 412، 913)
2026-11-02 09:14:05 INFO  تم: 10,412 صفًا -> report-2026-10.xlsx (الورقتان «المبيعات» و«الإجماليات»)

إعدادات لا كود

أسماء أعمدة كل متجر موجودة في settings.ini، فالمتجر الجديد أو العمود الذي تغيّر اسمه يعني سطرًا واحدًا هناك:

[columns]
date = التاريخ, تاريخ البيع, اليوم
product = المنتج, الصنف, الاسم
quantity = الكمية, العدد, قطع
price = السعر, سعر الوحدة

جزء من الكود

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """يقرأ ملف متجر واحد ويمنح أعمدته أسماء أعمدة التقرير."""
    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}: لا يوجد عمود لـ «{name}» (جرى البحث عن: {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

الملفات: أرشيف ZIP يضم merge_sales.py (310 أسطر)، وsettings.ini، وrequirements.txt، وملف README يشرح تثبيت Python وتشغيل السكربت ومعنى كل رسالة في السجل. يشغّله العميل على كمبيوتره الخاص.

العميل: سلسلة صغيرة من 9 متاجر للأدوات المكتبية؛ يرسل كل متجر مبيعاته الشهرية في ملف CSV أو Excel، بأسماء أعمدة تختلف قليلًا من متجر إلى آخر. المهمة: سكربت واحد يقرأ كل ملف في مجلد، ويوحّد الأعمدة في شكل واحد، ويكتب تقرير Excel واحدًا يضم كل المبيعات وورقة بالإجماليات حسب المتجر.

العميل وجميع التفاصيل افتراضية.

عن هذه الخدمة

قائمة جهات اتصال جُمعت على مدى سنوات من متجر ونظام CRM وجداول بيانات ينتهي بها الأمر إلى تكرار الشخص نفسه ثلاث مرات، وكتابة الهواتف بخمس طرق، وعناوين بريد إلكتروني فيها مسافات أو أخطاء إملائية. ينظف سكربت Python هذا قائمتك الخاصة على جهازك: يزيل المسافات الزائدة، ويصحح الأحرف الكبيرة، ويكتب أرقام الهواتف بتنسيق واحد، ويميّز عناوين البريد الإلكتروني ذات الصيغة المعيبة، ويجد التكرارات حسب البريد الإلكتروني أو الهاتف، ثم يحفظ ملفًا نظيفًا وملفًا منفصلًا بما أزاله، لتتمكن من مراجعته. أرسل إلينا بضعة صفوف بأسماء وهواتف وعناوين بريد مختلقة تشبه بياناتك، وقواعدك. القائمة لا تصل إلينا أبدًا، والسكربت لا يرسل أي شيء إلى أي مكان. إنه يتحقق من صيغة العنوان، لا من وجود صندوق البريد.

ما المشمول

  • ما الذي تحصل عليهأرشيف ZIP يضم سكربت Python وملف README بتعليمات خطوة بخطوة، ومن الباقة القياسية ملف إعدادات بقواعد التنظيف الخاصة بك؛ ويُعرض الكود أيضًا في صفحة الطلب.
  • اكتشاف التكراراتحسب البريد الإلكتروني أو الهاتف أو كليهما معًا
  • تنسيق واحد للهواتفمع رمز الدولة الذي تحدده للأرقام التي لا تحمله
  • الاحتفاظ بالصفوف المزالةملف منفصل بكل صف أُزيل أو دُمج
  • يبقى على جهازكقائمتك لا تُرفع ولا تُرسل أبدًا
  • كود مقروءمع تعليقات، ليسهل تغيير أي قاعدة لاحقًا

كيف يعمل

  1. 1
    القواعدترسل صفوفًا نموذجية مختلقة وقواعدك للتكرارات
  2. 2
    الكودنكتب السكربت ودليل تشغيله
  3. 3
    جرّبهتشغّله على نسخة من قائمتك وتراجع الصفوف المزالة
  4. 4
    التعديلاتتطلب التعديلات ضمن باقتك وترسل أي رسالة خطأ

ما نحتاجه منك

أسماء أعمدة قائمتك و10-20 صفًا بأسماء وهواتف وعناوين بريد مختلقة مكتوبة كما تظهر في بياناتك الحقيقية (بأنواع الفوضى نفسها). قواعدك: ما الذي يُعد تكرارًا، وأي صف يبقى (الأحدث أو الأكمل)، ورمز الدولة لأرقام الهواتف المحلية، وكيف تُكتب الهواتف. CSV أو Excel، ونظامك: Windows أو macOS أو Linux. لا ترسل القائمة الحقيقية أبدًا.

سنسألك:

  • من أين تأتي القائمة؟
  • ما الذي يُعد تكرارًا؟
  • أي صف يجب أن يبقى؟
  • كيف يجب أن تبدو الهواتف؟

قارن بين الباقات

الباقاتالأساسيةتنظيف أساسي‏16 US$القياسيةالتنظيف مع القواعد‏33 US$المميزةأداة التنظيف‏67 US$
مدة التنفيذ1 يوم2 يوم3 أيام
التعديلات123
الكودحتى 150 سطرًاحتى 400 سطرحتى 1,000 سطر
ملفات الكود1حتى 3حتى 8
ملف الإعداداتلانعمنعم
رسائل خطأ واضحة وسجللانعمنعم
خيارات التشغيل ودليل لتشغيله وفق جدول زمنيلالانعم
دليل التثبيت والتشغيل (README)نعمنعمنعم
اللغةPythonPythonPython
اطلب الأساسيةاطلب القياسيةاطلب المميزة

حماية الدفع

تدفع عند الطلب، لكن المبلغ لا يُحوَّل إلا مقابل عمل قبلته.

  • سعر ثابتلا يتغير سعر الباقة بعد الدفع.
  • المبلغ محجوزعند الدفع، يُحجز المبلغ فقط. ولا يُحوَّل إلى Dleex إلا بعد قبولك العمل.
  • فحص قبل التسليمتخضع كل نتيجة لفحص الجودة قبل أن تصل إليك، وتراها في صفحة الطلب قبل قبولها.
  • تعديلات مجانيةاطلب تعديلات ضمن متطلبات طلبك بالعدد الذي تسمح به الباقة.
  • القبول بعد 3 أيامإذا لم تقبل العمل ولم تطلب تعديلات خلال 3 أيام من التسليم، يُقبل تلقائيًا. وإذا كتبت في محادثة الطلب بعد التسليم، يبقى الطلب قيد الانتظار؛ وبعد ردّنا، قد نعيد بدء مهلة 3 أيام وسنُعلمك بذلك في المحادثة.
  • إعادة التنفيذ أو استرداد المبلغ كاملًاإذا لم تطابق النتيجة متطلبات طلبك ولم تُصلحها التعديلات، أو استغرق العمل أكثر من ضعف مدة التنفيذ، فاكتب في محادثة الطلب: سنعيد تنفيذ العمل أو نردّ إليك المبلغ كاملًا.
كيف يعمل →

الأسئلة والأجوبة

هل يمكنه إخباري بعناوين البريد الإلكتروني المعطلة؟

لا. يتحقق من أن العنوان مكتوب بشكل صحيح (علامة @ واحدة، ونطاق، وبلا مسافات) ويميّز الأخطاء الإملائية الشائعة في النطاق. أما وجود صندوق البريد فلا تعرفه إلا خدمة البريد، والتحقق من ذلك ليس جزءًا من هذا العرض.

هل يمكنه التعرف على John Smith وJ. Smith كشخص واحد؟

في الباقة المميزة يميّز مثل هذه التكرارات المتقاربة لتقرر أنت، بدلًا من دمجها من تلقاء نفسه، لأن الأسماء وحدها ليست موثوقة. أما التكرارات المطابقة حسب البريد الإلكتروني أو الهاتف فتُدمج وفق قواعدك.

هل قائمة جهات الاتصال لديّ آمنة؟

لا تغادر جهازك أبدًا: تشغّل السكربت بنفسك، ولا يتضمن كوده أي اتصال بالإنترنت، ولا نرى إلا الصفوف المختلقة التي ترسلها. احتفظ بالقائمة ونسختها النظيفة بأمان كما كنت تفعل من قبل.

هل يمكنه إضافة جهات اتصال أو العثور على عناوين بريد ناقصة؟

لا. يرتب فقط جهات الاتصال الموجودة لديك بالفعل. لا يبحث عن أي شخص ولا يجمع بيانات جديدة.

لم تجد إجابتك؟

الباقات