- 1 1. ما هو argparse؟ أساسيات استخدامه في Python
- 2 2. لماذا نستخدم argparse؟ الخيار الأمثل لأدوات CLI
- 3 3. الهيكل الأساسي لـ argparse: شرح خطوة بخطوة
- 4 4. مثال عملي: برنامج Python بسيط باستخدام argparse
- 5 5. ميزات يجب معرفتها في argparse
- 6 6. التعامل مع الأخطاء والتصحيح باستخدام argparse
- 7 7. أمثلة تطبيقية على استخدام argparse
- 8 8. الخلاصة
1. ما هو argparse؟ أساسيات استخدامه في Python
ما هو argparse؟
argparse
هي مكتبة قياسية في Python تُستخدم لمعالجة معاملات سطر الأوامر. تسمح لك باستقبال وتحليل خيارات ووسائط المستخدم عند تشغيل البرنامج، مما يمنحك مرونة كبيرة لتخصيص سلوك التطبيق. على سبيل المثال، يمكنك جعل المستخدم يحدد مسار ملف أو إعدادات اختيارية مباشرة من سطر الأوامر لبناء أدوات CLI فعّالة وسهلة الاستخدام.
import argparse
parser = argparse.ArgumentParser(description="برنامج لمعالجة الملفات")
parser.add_argument("input_file", help="مسار الملف المطلوب معالجته")
args = parser.parse_args()
print(f"الملف الذي سيتم معالجته: {args.input_file}")
في هذا الكود، يستقبل البرنامج مسار الملف الذي يدخله المستخدم عبر سطر الأوامر ويعرضه. باستخدام add_argument
تُعرّف الوسيطات، وبـ parse_args()
يتم تحليلها بطريقة بسيطة وواضحة.
2. لماذا نستخدم argparse؟ الخيار الأمثل لأدوات CLI
ما هي أدوات CLI؟
أدوات CLI هي برامج تُدار مباشرة من سطر الأوامر، وهي مفيدة جداً لإدارة الأنظمة أو معالجة البيانات أو عمليات الأتمتة. عند بناء أدوات CLI بـ Python، تعتبر argparse
أداة قوية لأنها تُبسط استقبال وتحليل الوسائط، وتوفر معالجة تلقائية للأخطاء وتوليد رسائل المساعدة.
مزايا argparse
- إعداد وسائط مرن: من السهل تعريف الوسائط الإلزامية والاختيارية، مما يتيح تصميم برامج أكثر سهولة للمستخدم.
- معالجة أخطاء تلقائية: إذا كانت الوسائط ناقصة أو القيم غير صحيحة، تقوم
argparse
بإظهار رسائل خطأ تلقائية. - رسائل مساعدة تلقائية: توفر
argparse
خيار--help
تلقائياً ليتمكن المستخدم من معرفة كيفية استخدام البرنامج بسهولة.
يوضح المثال التالي كيفية استخدام --help
لعرض تعليمات أداة سطر الأوامر:
$ python script.py --help
usage: script.py [-h] input_file
positional arguments:
input_file الملف المراد معالجته
optional arguments:
-h, --help عرض رسالة المساعدة والخروج

3. الهيكل الأساسي لـ argparse: شرح خطوة بخطوة
إنشاء ArgumentParser
لتحليل الوسائط، تحتاج أولاً إلى إنشاء كائن ArgumentParser
، والذي يُستخدم لتحديد وصف البرنامج وطريقة استخدامه.
parser = argparse.ArgumentParser(description="برنامج لمعالجة الملفات")
إضافة الوسائط
بعد ذلك، استخدم add_argument()
لإضافة الوسائط المطلوبة أو الاختيارية، ويمكنك أيضاً إضافة شرح باستخدام باراميتر help
.
parser.add_argument("input_file", type=str, help="يرجى تحديد ملف الإدخال")
parser.add_argument("--verbose", action="store_true", help="تفعيل الإخراج التفصيلي")
تحليل الوسائط
في النهاية، استخدم دالة parse_args()
لتحليل الوسائط التي أدخلها المستخدم من سطر الأوامر، حيث يتم حفظها في كائن args
.
args = parser.parse_args()
4. مثال عملي: برنامج Python بسيط باستخدام argparse
مثال أساسي
يوضح المثال التالي كيفية إنشاء أداة CLI تستقبل اسم ملف وخيار إخراج تفصيلي باستخدام argparse
:
import argparse
parser = argparse.ArgumentParser(description="برنامج لمعالجة ملف")
parser.add_argument("file", help="يرجى تحديد مسار الملف")
parser.add_argument("--verbose", action="store_true", help="تفعيل الوضع التفصيلي")
args = parser.parse_args()
if args.verbose:
print(f"يتم معالجة الملف '{args.file}' في وضع التفاصيل")
else:
print(f"يتم معالجة الملف '{args.file}'")
في هذا البرنامج، يمكنك التبديل بين وضع التفاصيل والوضع العادي باستخدام خيار --verbose
.

5. ميزات يجب معرفتها في argparse
الوسائط الحصرية (Mutually Exclusive Arguments)
الوسائط الحصرية تعني أن بعض الخيارات لا يمكن استخدامها في نفس الوقت. على سبيل المثال، إذا أردت أن يكون --foo
و --bar
لا يمكن تحديدهما سوياً.
parser = argparse.ArgumentParser(description="مثال على الوسائط الحصرية")
group = parser.add_mutually_exclusive_group()
group.add_argument("--foo", action="store_true", help="تفعيل foo")
group.add_argument("--bar", action="store_true", help="تفعيل bar")
args = parser.parse_args()
الأوامر الفرعية (Subcommands)
باستخدام الأوامر الفرعية يمكنك تنظيم وظائف متعددة في برنامج واحد، مثل تنفيذ أو إزالة التثبيت.
parser = argparse.ArgumentParser(description="مثال على الأوامر الفرعية")
subparsers = parser.add_subparsers(dest="command")
install_parser = subparsers.add_parser('install')
install_parser.add_argument('package', help="اسم الحزمة للتثبيت")
uninstall_parser = subparsers.add_parser('uninstall')
uninstall_parser.add_argument('package', help="اسم الحزمة للإزالة")
args = parser.parse_args()
if args.command == "install":
print(f"سيتم تثبيت الحزمة {args.package}")
elif args.command == "uninstall":
print(f"سيتم إزالة الحزمة {args.package}")
6. التعامل مع الأخطاء والتصحيح باستخدام argparse
رسائل الخطأ التلقائية
يُولّد argparse
رسائل خطأ تلقائياً إذا كانت الوسائط ناقصة أو غير صالحة.
$ python script.py
usage: script.py [-h] --input INPUT
script.py: error: the following arguments are required: --input
رسائل خطأ مخصصة
في بعض الحالات، قد تحتاج لإضافة رسائل خطأ أكثر توضيحاً لتقديم تغذية راجعة أفضل للمستخدم.
parser = argparse.ArgumentParser(description="مثال على رسالة خطأ مخصصة")
parser.add_argument("--input", required=True, help="يرجى تحديد ملف الإدخال")
try:
args = parser.parse_args()
except argparse.ArgumentError as err:
print(f"خطأ: {err}")

7. أمثلة تطبيقية على استخدام argparse
الاستخدام في أدوات الأتمتة
يعد argparse
مثالياً لأدوات معالجة الملفات أو تحليل البيانات، حيث يمكن للمستخدم تحديد المسارات أو أوضاع المعالجة مباشرة من سطر الأوامر.
$ python data_processor.py --input data.csv --output results.json --verbose
الاستخدام في المشاريع الكبيرة
في المشاريع الكبيرة، يُحسن الجمع بين الأوامر الفرعية والوسائط الحصرية تجربة المستخدم بشكل كبير. على سبيل المثال، أنظمة إدارة الحزم يمكن أن تجمع وظائف التثبيت والإزالة في أداة واحدة.
$ python package_manager.py install package_name
بفضل argparse
يمكن للمستخدمين إدارة النظام بسهولة، كما يتيح إعادة استخدام الكود وصيانته بشكل أفضل.
8. الخلاصة
يتيح لك argparse
إنشاء واجهة سطر أوامر (CLI) قوية ومرنة في برامج Python الخاصة بك. يمكنك الاستفادة من الوسائط الإلزامية والاختيارية، الأوامر الفرعية، والوسائط الحصرية لإنشاء برامج سهلة وفعّالة. يعتبر الخيار الأمثل للأدوات الكبيرة أو عمليات أتمتة البيانات وغير ذلك من الاستخدامات العملية.
يساعدك فهم أفضل لطرق التطبيق العملية وتحسين الأداء على كتابة كود أكثر كفاءة، كما أن تطبيق أفضل الممارسات في التعامل مع الأخطاء يتيح للمستخدمين اكتشاف المشكلات بسرعة.
إذا كان لديك أي أسئلة إضافية، لا تتردد في التواصل معنا.