برمجةحماية الدفعالتفاصيل
- التعديلات ضمن الباقة مجانية.
- إذا لم تردّ خلال 3 أيام من التسليم، يُقبل العمل تلقائيًا.
يُحجز المبلغ عند الدفع ولا يُحوَّل إلا بعد قبولك العمل.

مثال على النتيجة
دمج ملفات المبيعات الشهرية لـ 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 واحدًا يضم كل المبيعات وورقة بالإجماليات حسب المتجر.
العميل وجميع التفاصيل افتراضية.
عن هذه الخدمة
الصور القادمة مباشرة من الكاميرا أو الهاتف تبلغ غالبًا 5-10 MB لكل منها: ثقيلة جدًا على صفحة منتج أو معرض صور في موقع أو رسالة بريد إلكتروني. يمر سكربت Python هذا على مجلد ويحفظ نسخة أصغر من كل صورة: بالعرض أو الارتفاع الذي تحدده دون تمطيط، ومضغوطة بالجودة التي تختارها، بصيغة JPEG أو PNG. بدءًا من الباقة القياسية يمكنه إنشاء عدة أحجام دفعة واحدة وإزالة البيانات المخفية التي تحملها الصور، مثل الكاميرا ومكان الالتقاط. تبقى أصولك دون مساس، وتذهب النتائج إلى مجلد منفصل. أرسل إلينا الأحجام التي تحتاجها وصورتين أو ثلاثًا نموذجية. تشغّل السكربت بنفسك على جهازك. إنه يغيّر الحجم ويضغط؛ ولا يُنقّح الصور ولا يزيل الخلفيات ولا يصحح الألوان.
ما المشمول
- ما الذي تحصل عليهأرشيف ZIP يضم سكربت Python وملف README بتعليمات خطوة بخطوة، ومن الباقة القياسية ملف إعدادات بأحجامك والجودة؛ ويُعرض الكود أيضًا في صفحة الطلب.
- بلا تمطيطتُحفظ النسب؛ والقص أو الحشو فقط إن طلبت
- جودة تختارهاملفات أخف بالحدة التي ترضيك
- الاحتفاظ بالأصولتذهب النسخ إلى مجلد منفصل
- إزالة البيانات المخفيةبدءًا من الباقة القياسية، تُزال بيانات الكاميرا والموقع إن أردت
- كود مقروءمع تعليقات، ليسهل تغيير أي حجم لاحقًا
كيف يعمل
- 1الأحجامتحدد الأحجام وترسل بضع صور نموذجية
- 2الكودنكتب السكربت ودليل تشغيله
- 3جرّبهتشغّله على مجلد وتراجع النسخ
- 4التعديلاتتطلب التعديلات ضمن باقتك وترسل أي رسالة خطأ
ما نحتاجه منك
الأحجام التي تحتاجها بالبكسل (مثلًا 1600 px عرضًا للموقع و400x400 للصور المصغرة) أو الأحجام التي تطلبها منصة متجرك، وهل تُقص الصورة أم يُضاف حشو حين يختلف الشكل، وصيغة الملف وأي حد للوزن، مثل أقل من 300 KB. صورتان أو ثلاث من صورك كنماذج، والعدد التقريبي للصور وهل هي في مجلدات فرعية. نظامك: Windows أو macOS أو Linux.
سنسألك:
- أين ستُستخدم الصور؟
- ما الأحجام التي تحتاجها؟
- هل توجد حدود للوزن أو الصيغة؟
- أين سيعمل؟
قارن بين الباقات
| الباقات | الأساسيةحجم واحد16 US$ | القياسيةالأحجام مع الإعدادات33 US$ | المميزةأداة الصور67 US$ |
|---|---|---|---|
| مدة التنفيذ | 1 يوم | 2 يوم | 3 أيام |
| التعديلات | 1 | 2 | 3 |
| الكود | حتى 150 سطرًا | حتى 400 سطر | حتى 1,000 سطر |
| ملفات الكود | 1 | حتى 3 | حتى 8 |
| ملف الإعدادات | لا | نعم | نعم |
| رسائل خطأ واضحة وسجل | لا | نعم | نعم |
| خيارات التشغيل ودليل لتشغيله وفق جدول زمني | لا | لا | نعم |
| دليل التثبيت والتشغيل (README) | نعم | نعم | نعم |
| اللغة | Python | Python | Python |
| اطلب الأساسية | اطلب القياسية | اطلب المميزة |
حماية الدفع
تدفع عند الطلب، لكن المبلغ لا يُحوَّل إلا مقابل عمل قبلته.
- سعر ثابتلا يتغير سعر الباقة بعد الدفع.
- المبلغ محجوزعند الدفع، يُحجز المبلغ فقط. ولا يُحوَّل إلى Dleex إلا بعد قبولك العمل.
- فحص قبل التسليمتخضع كل نتيجة لفحص الجودة قبل أن تصل إليك، وتراها في صفحة الطلب قبل قبولها.
- تعديلات مجانيةاطلب تعديلات ضمن متطلبات طلبك بالعدد الذي تسمح به الباقة.
- القبول بعد 3 أيامإذا لم تقبل العمل ولم تطلب تعديلات خلال 3 أيام من التسليم، يُقبل تلقائيًا. وإذا كتبت في محادثة الطلب بعد التسليم، يبقى الطلب قيد الانتظار؛ وبعد ردّنا، قد نعيد بدء مهلة 3 أيام وسنُعلمك بذلك في المحادثة.
- إعادة التنفيذ أو استرداد المبلغ كاملًاإذا لم تطابق النتيجة متطلبات طلبك ولم تُصلحها التعديلات، أو استغرق العمل أكثر من ضعف مدة التنفيذ، فاكتب في محادثة الطلب: سنعيد تنفيذ العمل أو نردّ إليك المبلغ كاملًا.
الأسئلة والأجوبة
ما الصيغ التي يمكنه قراءتها؟
JPEG وPNG وGIF وBMP وTIFF وWebP. صور HEIC من هواتف iPhone وملفات RAW من الكاميرات تحتاج إلى مكتبة إضافية؛ أخبرنا إن كانت لديك وسنخبرك هل تتسع لباقتك.
هل ستفقد الصور جودتها؟
قليلًا، كما في أي ضغط، لكن مع الإعدادات المعتادة يصعب ملاحظة ذلك على الشاشة. تحدد الجودة في الإعدادات ويمكنك تجربة عدة قيم على صور نموذجية.
هل يمكنه إنشاء WebP أيضًا؟
نعم، يمكنه حفظ WebP بجانب JPEG ضمن الباقة نفسها. وإن كان WebP هو الهدف الرئيسي، فاطّلع على عرضنا لتحويل الصور إلى WebP.
هل ستغيّرون حجم صوري بدلًا مني؟
لا. تشغّل السكربت على جهازك، فتبقى صورك لديك. كل ما نحتاجه بضعة نماذج.
لم تجد إجابتك؟


