目次
1. الاستخدام الأساسي لمعاملات سطر الأوامر في Python
ما هي معاملات سطر الأوامر؟
عند تشغيل برنامج Python، يمكن تمرير معلومات إضافية مع أمر التنفيذ تُسمى “معاملات سطر الأوامر”. يتيح ذلك تغيير سلوك البرنامج بشكل مرن أو تمرير البيانات من الخارج بسهولة. على سبيل المثال، يمكن تمرير اسم ملف أو قيم إعداد كمعاملات لتغيير محتوى البرنامج ديناميكيًا.الحصول على معاملات سطر الأوامر باستخدام sys.argv
في Python، يمكن استخدام مكتبة sys
القياسية للحصول على معاملات سطر الأوامر. المتغير sys.argv
هو قائمة تحتوي على هذه المعاملات. العنصر الأول في القائمة (sys.argv[0]
) هو اسم البرنامج المنفذ، والعناصر التالية هي القيم الممررة كمعاملات.مثال: برنامج حساب بسيط
import sys
def main():
if len(sys.argv) < 3:
print("خطأ: مطلوب معاملان")
return
num1 = float(sys.argv[1])
num2 = float(sys.argv[2])
print(f"المجموع: {num1 + num2}")
if __name__ == "__main__":
main()
يعرض البرنامج أعلاه مجموع رقمين تم تمريرهما من سطر الأوامر. مثال للتنفيذ:$ python script.py 3 5
المجموع: 8.0

2. المعالجة المتقدمة للمعاملات باستخدام argparse
أساسيات argparse
يمكن لـ sys.argv
التعامل مع المعاملات الأساسية، ولكن عندما يزداد عدد المعاملات أو نحتاج إلى معاملات اختيارية وأعلام مثل --verbose
، يكون من الأفضل استخدام مكتبة argparse
القياسية. توفر هذه المكتبة تحليل المعاملات وتوليد رسائل خطأ تلقائيًا.تحليل المعاملات وإنشاء محلل
لاستخدامargparse
، نبدأ بإنشاء محلل معاملات، ثم نحدد المعاملات المطلوبة ونقوم بتحليلها.مثال: الاستخدام الأساسي لـ argparse
import argparse
def main():
parser = argparse.ArgumentParser(description='برنامج تجريبي')
parser.add_argument('arg1', help='المعامل الأول')
parser.add_argument('arg2', type=float, help='المعامل الثاني (عدد)')
args = parser.parse_args()
print(f"arg1 = {args.arg1}")
print(f"arg2 = {args.arg2}")
if __name__ == "__main__":
main()
في هذا البرنامج، يتم استقبال معاملين: arg1
كنص وarg2
كعدد، ثم طباعتهما بعد التحليل.$ python script.py test 5.5
arg1 = test
arg2 = 5.5
معالجة المعاملات الاختيارية والأعلام
من أقوى ميزاتargparse
هي دعم المعاملات الاختيارية والأعلام. يمكن استخدام هذه الوظائف لكتابة تعليمات تعمل فقط عند تمرير خيار محدد، مثل إخراج مفصل عند استخدام علم --verbose
.مثال: استخدام المعاملات الاختيارية والأعلام
import argparse
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--verbose', action='store_true', help='إظهار إخراج مفصل')
parser.add_argument('numbers', nargs='+', type=float, help='قائمة من الأعداد')
args = parser.parse_args()
total = sum(args.numbers)
if args.verbose:
print(f"تفاصيل الحساب: مجموع {args.numbers} هو {total}")
else:
print(f"المجموع: {total}")
if __name__ == "__main__":
main()
في هذا البرنامج، عند تمرير العلم --verbose
يتم عرض تفاصيل إضافية، وإلا يتم عرض النتيجة بشكل مبسط.$ python script.py 1 2 3 --verbose
تفاصيل الحساب: مجموع [1.0, 2.0, 3.0] هو 6.0

3. معالجة الأخطاء والتحقق من المعاملات
التحقق من عدد ونوع المعاملات
عند التعامل مع معاملات سطر الأوامر، من المهم عرض رسائل خطأ إذا لم يقدم المستخدم المعاملات بشكل صحيح. يساعد التحقق من العدد والنوع الصحيح للمعاملات على منع الأخطاء وضمان استقرار البرنامج.مثال: التحقق من عدد ونوع المعاملات
import sys
def main():
if len(sys.argv) != 3:
print("خطأ: مطلوب معاملان")
return
try:
num1 = float(sys.argv[1])
num2 = float(sys.argv[2])
except ValueError:
print("خطأ: يجب أن تكون المعاملات أعدادًا")
return
print(f"المجموع: {num1 + num2}")
if __name__ == "__main__":
main()
في هذا البرنامج، إذا لم يكن عدد المعاملات ثلاثة (اسم البرنامج + معاملان)، يتم عرض رسالة خطأ. كما يتم التحقق من أن المدخلات أعداد صحيحة.4. حالات الاستخدام العملية والتطبيقات
مثال على إنشاء أداة سطر أوامر
يمكن استخدام معاملات سطر الأوامر لإنشاء أدوات عملية مثل التعامل مع الملفات أو معالجة البيانات.مثال: أداة لعدّ أسطر الملف
import argparse
def main():
parser = argparse.ArgumentParser(description='أداة لعد أسطر الملف')
parser.add_argument('filename', help='اسم الملف المطلوب عده')
args = parser.parse_args()
try:
with open(args.filename, 'r') as file:
lines = file.readlines()
print(f"عدد الأسطر في الملف {args.filename}: {len(lines)}")
except FileNotFoundError:
print(f"خطأ: لم يتم العثور على الملف {args.filename}")
if __name__ == "__main__":
main()
تقوم هذه الأداة بعدّ عدد الأسطر في الملف المحدد.$ python count_lines.py example.txt
عدد الأسطر في الملف example.txt: 100
5. الخلاصة
تعلم كيفية التعامل مع معاملات سطر الأوامر في Python يمنح برامجك مرونة أكبر. بدءًا منsys.argv
للطريقة البسيطة وحتى argparse
للمعالجة المتقدمة، يمكنك اختيار الأسلوب المناسب حسب الحاجة. كما أن تضمين معالجة الأخطاء والتحقق من صحة المعاملات يساهم في إنشاء برامج أكثر قوة واستقرارًا.