كيفية تحليل الحجج في سطر الأوامر في بايثون

How Parse Arguments Command Line Python



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

تحليل وسيطة سطر الأوامر باستخدام sys وحدة

يتم تخزين وسيطات سطر الأوامر في قائمة باستخدام sys وحدة. sys.argv يستخدم لقراءة قيم وسيطات سطر الأوامر. يمكن حساب العدد الإجمالي لوسائط سطر الأوامر باستخدام لين () وظيفة. تم وصف استخدام هذه الوحدة في جزء المقالة.







مثال 1: قراءة عدد الحجج وقيم الوسيطات

قم بإنشاء ملف باستخدام نص Python النصي التالي. هنا ، يتم تخزين قيم وسيطة سطر الأوامر في المتغير ، أرجف مثل اللغات الأخرى. لين () يحسب الأسلوب العدد الإجمالي للوسيطات التي تم تمريرها في وقت تنفيذ البرنامج النصي. تتم طباعة قيم الوسيطة كمصفوفة في نهاية البرنامج النصي.



# استيراد وحدة النظام
يستورد sys

# طباعة العدد الإجمالي للحجج
مطبعة('مجموع الحجج'و لين(sys.أرجف))
مطبعة('قيم الوسيطة هي:'و ص(sys.أرجف))

انتاج:



يتم تنفيذ البرنامج النصي أعلاه هنا باستخدام أربع وسيطات سطر أوامر. الوسيطة الأولى هي اسم البرنامج النصي والأخرى عبارة عن قيم رقمية. سيظهر الإخراج التالي بعد تشغيل البرنامج النصي.





مثال 2: قراءة قيم الوسيطة باستخدام الحلقة



في المثال السابق ، تتم طباعة قيم الوسيطات كمصفوفة. قم بإنشاء ملف بالبرنامج النصي التالي لطباعة نوع متغير الوسيطة وطباعة كل قيمة وسيطة في كل سطر باستخدام حلقة for.

# استيراد وحدة النظام
يستورد sys

# اطبع نوع المتغير sys.argv
مطبعة(نوع(sys.أرجف))

# طباعة كل وسيطة سطر أوامر في كل سطر
مطبعة('وسيطات سطر الأوامر هي:')
لأنافي sys.أرجف:
مطبعة(أنا)

انتاج:

يتم تنفيذ النص أعلاه من خلال توفير ثلاث وسائط مع اسم البرنامج النصي. سيظهر الإخراج التالي بعد تشغيل البرنامج النصي.

تحليل وسيطة سطر الأوامر باستخدام وحدة getopt

تصدرت الوحدة النمطية لتحليل وسيطات سطر الأوامر مع الخيارات. تصدرت () يتم استخدام طريقة هذه الوحدة لقراءة الحجج. هذه الطريقة لها ثلاث حجج. الوسيطتان الأوليان إلزاميتان والوسيطة الأخيرة اختيارية. فيما يلي استخدامات هذه الحجج.

أرغس: يحتوي على الحجة المأخوذة من وسيطة سطر الأوامر.

اختيار قصير: يمكن أن يكون أي حرف يمر مع الوسيطة.

long_option: يتم استخدامه لتحديد الخيارات الطويلة من جزأين. هذه هي اسم الخيار وقيمة الخيار.

بناء الجملة: getopt.getopt (args، short_option، [long_option])

مثال 3: قراءة قيم الوسيطة باستخدام خيارات getopt القصيرة

تصدرت تحتوي الوحدة النمطية على ميزات أكثر من sys وحدة. يوضح المثال التالي كيف يمكن استخدام الخيارات القصيرة في تصدرت () طريقة. أرجف المتغير سيخزن وسيطات سطر الأوامر بحذف اسم البرنامج النصي. بعد ذلك ، يتم تحديد خيارين في ملف تصدرت () الطريقة التي يمكن استخدامها مع الوسيطة في وقت التشغيل. في حالة حدوث أي خطأ ، سيتم عرض رسالة خطأ.

# استيراد وحدة getopt
يستورد تصدرت

# استيراد وحدة النظام
يستورد sys

# تخزين متغير الوسيطة مع حذف اسم البرنامج النصي
أرجف= sys.أرجف[1:]

محاولة:
# تحديد خيارات getopt القصيرة
والخياراتوأرجس= تصدرت.تصدرت(أرجفو 'س: ص:')

# طباعة الخيارات والحجة
مطبعة(والخيارات)
مطبعة(أرجس)

إلا تصدرت.GetoptError:

# اطبع رسالة الخطأ إذا تم توفير الخيار الخطأ
مطبعة('تم توفير خيار خاطئ')

# إنهاء البرنامج النصي
sys.خروج(2)

انتاج:

قم بتشغيل البرنامج النصي دون أي وسيطات ، مع الخيارات الصحيحة والوسيطات مع الخيار الخطأ.

مثال 4: قراءة قيم الوسيطة باستخدام خياري getopt القصير والطويل

يوضح هذا المثال كيف يمكن استخدام كل من الخيارات القصيرة والطويلة مع قيم الوسيطة. سيضيف رقمين عندما '-إلى' أو '-يضيف' كخيار وطرح رقمين عند ' -س' أو ' -الفرعية' سيتم استخدامه كخيار في وقت التشغيل.

# استيراد وحدة getopt
يستورد تصدرت

# استيراد وحدة النظام
يستورد sys

# تخزين متغير الوسيطة مع حذف اسم البرنامج النصي
أرجف= sys.أرجف[1:]

# تهيئة متغير النتيجة
نتيجة=0

محاولة:

# تحديد خيارات getopt قصيرة وطويلة
والخياراتوأرجس= تصدرت.تصدرت(sys.أرجف[1:]و 'كما'و ['إضافة ='و'sub ='])

# اقرأ كل خيار باستخدام حلقة for
ليختار، يقرروغاضبفيوالخيارات:
# احسب المجموع إذا كان الخيار -a أو - add
لويختار، يقررفي ('-إلى'و '--يضيف'):
نتيجة= int(أرجف[1])+int(أرجف[2])

# احسب suntraction إذا كان الخيار هو -s أو --sub
أليفيختار، يقررفي ('-س'و '--الفرعية'):
نتيجة= int(أرجف[1])-int(أرجف[2])

مطبعة('النتيجة ='ونتيجة)

إلا تصدرت.GetoptError:

# اطبع رسالة الخطأ إذا تم توفير الخيار الخطأ
مطبعة('تم توفير خيار خاطئ')

# إنهاء البرنامج النصي
sys.خروج(2)

انتاج:

قم بتشغيل البرنامج النصي بدون أي وسيطات وخيارات ، وسيطات بخيار '-a' ، وسيطات بخيار '-s' والوسيطات ذات الخيار الخطأ.

تحليل وسيطة سطر الأوامر باستخدام الوحدة النمطية argparse

تحتوي الوحدة النمطية Argparse على الكثير من الخيارات لقراءة وسيطات سطر الأوامر. يمكن توفير قيم الوسيطة الافتراضية ، وسيطة مع نوع البيانات ، والحجج الموضعية ، ورسالة المساعدة ، وما إلى ذلك من خلال هذه الوحدة.

مثال 5: قراءة وسيطات سطر الأوامر باستخدام argparse

يوضح المثال التالي استخدام جدل وحدة لقراءة حجة سطر الأوامر. هنا ، يتم تحديد خيارين لقراءة وسيطات سطر الأوامر. وهذه هي '-n' أو '–name' و '-e' أو '–email'. إذا قدم المستخدم أي وسيطة خاطئة ، فسيظهر خطأ في رسالة الاستخدام. إذا قدم المستخدم خيارات صحيحة مع الوسيطات ، فسيعرض قيم الوسيطات. إذا قام المستخدم بتشغيل النص البرمجي باستخدام الخيار 'تعليمات' ، فسيوفر الرسالة اللازمة لتشغيل النص البرمجي.

# استيراد وحدة argparse
يستوردجدل

# استيراد وحدة النظام
يستورد sys

# إعلان وظيفة لتحديد وسيطات سطر الأوامر
defreadOptions(أرجس=sys.أرجف[1:]):
محلل =جدل.حجة محلل(وصف='قوائم أوامر التحليل'.)
محلل.add_argument('-ن'و '--اسم'و يساعد='اكتب اسمك.')
محلل.add_argument('-و'و '--البريد الإلكتروني'و يساعد=اكتب بريدك الإلكتروني.)
يختار= محلل.parse_args(أرجس)
إرجاعيختار

# استدعاء الوظيفة لقراءة قيم الوسيطة
والخيارات=readOptions(sys.أرجف[1:])
مطبعة(والخيارات.اسم)
مطبعة(والخيارات.البريد الإلكتروني)

انتاج:

قم بتشغيل البرنامج النصي بخيار خاطئ وخيار صحيح وخيار مساعدة.

استنتاج:

يتم شرح طرق مختلفة لقراءة وسيطات سطر الأوامر في هذا البرنامج التعليمي باستخدام ثلاث وحدات بيثون. آمل أن يساعد هذا البرنامج التعليمي المبرمج الذي يريد قراءة البيانات باستخدام وسيطات سطر الأوامر في بيثون.

شاهد فيديو المؤلف: هنا