ازگر اسکرپٹ میں کمانڈ لائن دلائل کیسے شامل کریں۔

How Add Command Line Arguments Python Script



اگر آپ نے ایک ازگر اسکرپٹ یا ایپلی کیشن تیار کی ہے جس کا مقصد بنیادی طور پر ٹرمینل ایمولیٹرز یا یہاں تک کہ GUI ایپس میں چلنا ہے ، کمانڈ لائن دلائل شامل کرنے سے اس کے استعمال کی صلاحیت ، کوڈ پڑھنے کی اہلیت ، ایپلی کیشن ڈھانچہ اور اختتامی صارفین کے لیے ایپلی کیشن کی مجموعی دوستی بہتر ہو سکتی ہے۔ ان کمانڈ لائن آرگمنٹس کو آپشن یا سوئچ بھی کہا جاتا ہے اور دلائل کی طرح کام کرتے ہیں جو آپ عام طور پر بش سکرپٹ اور دیگر C / C ++ پر مبنی پروگراموں میں دیکھتے ہیں۔

ازگر کے اسکرپٹس میں دلائل شامل کرنے کے لیے ، آپ کو ایک بلٹ ان ماڈیول استعمال کرنا پڑے گا جس کا نام argparse ہے۔ جیسا کہ نام سے پتہ چلتا ہے ، یہ ازگر اسکرپٹ یا ایپلی کیشن لانچ کرتے وقت استعمال ہونے والے کمانڈ لائن دلائل کو پارس کرتا ہے۔ یہ تجزیہ شدہ دلائل آرگپارس ماڈیول کے ذریعہ بھی چیک کیے جاتے ہیں تاکہ یہ یقینی بنایا جا سکے کہ وہ مناسب قسم کے ہیں۔ اگر دلائل میں غلط اقدار ہوں تو غلطیاں اٹھائی جاتی ہیں۔







argparse ماڈیول کے استعمال کو مثالوں کے ذریعے بہتر طور پر سمجھا جا سکتا ہے۔ ذیل میں کوڈ کے کچھ نمونے دیے گئے ہیں جو آپ کو آرگپارس ماڈیول سے شروع کریں گے۔



مثال 1: مدد کی دلیل اور پیغام بنائیں۔

ذیل میں کوڈ کے نمونے پر غور کریں:



درآمدارگ پارس

تجزیہ کار =ارگپارسدلیل پارسر۔(تفصیل='ایک ٹیسٹ پروگرام۔')

دلائل= تجزیہ کار.parse_args()

پہلا بیان argparse ماڈیول درآمد کرتا ہے۔ اگلا ، ArgumentParser آبجیکٹ کی ایک نئی مثال بنائی گئی ہے اور پروگرام کے لیے ایک مختصر تفصیل بطور دلیل فراہم کی جاتی ہے۔ کمانڈ لائن دلیل کی اقدار کو ازگر کے ذریعے سمجھے گئے ڈیٹا کی اقسام میں تبدیل کرنے کے لیے ArgumentParser آبجیکٹ کی ضرورت ہوتی ہے۔ یہ ArgumentParser آبجیکٹ کے parse_args طریقہ سے کیا جاتا ہے ، جیسا کہ آخری بیان میں دکھایا گیا ہے۔





یہ فرض کرتے ہوئے کہ آپ نے اوپر بیان کردہ کوڈ کے نمونے کو test.py نامی فائل میں محفوظ کر لیا ہے ، نیچے دی گئی کمانڈ چلانے سے آپ کو پروگرام سے متعلقہ پیغامات ملیں گے۔

$ ./پرکھ.py

$ ./پرکھ.py-مدد

آپ کو کچھ اسی طرح کی پیداوار ملنی چاہیے:



استعمال: test.py [-h]


ایک ٹیسٹ پروگرام۔


اختیاری دلائل:

-h ، -مدد کا یہ پیغام دکھائیں اور باہر نکلیں۔

نوٹ کریں کہ پارسڈ دلائل کو سنبھالنے اور انہیں اشیاء میں تبدیل کرنے کے لیے کوئی منطق اوپر بیان کردہ کوڈ نمونے میں شامل نہیں کی گئی ہے۔ لہذا ، انفرادی دلائل کے لیے مدد کے پیغامات آؤٹ پٹ میں نہیں دکھائے جاتے ہیں۔ ایک بار جب آپ اپنے پروگرام میں تجزیہ شدہ دلائل کی اقدار کو سنبھالنے کے لیے منطق شامل کریں گے تو مدد کے پیغامات انفرادی دلائل کے لیے تفصیل دکھانا شروع کردیں گے۔

مثال 2: سٹرنگ دلیل کو سنبھالیں۔

اپنے ازگر اسکرپٹ کے ذریعہ قابل قبول دلائل شامل کرنے کے لیے ، آپ کو add_argument طریقہ استعمال کرنے کی ضرورت ہے۔ مندرجہ ذیل کوڈ پر ایک نظر ڈالیں:

درآمدارگپارس

تجزیہ کار =ارگپارسدلیل پارسر۔(تفصیل='ایک ٹیسٹ پروگرام۔')

تجزیہ کار.add_argument('پرنٹ_ سٹرنگ'، مدد=فراہم کردہ دلیل پرنٹ کرتا ہے۔)

دلائل= تجزیہ کار.parse_args()

پرنٹ کریں(دلائلprint_string)

ایک نیا بیان شامل کیا گیا ہے جس میں add_argument طریقہ استعمال کیا گیا ہے۔ اسکرپٹ لانچ کرتے وقت جو بھی دلیل شامل کی گئی ہے اسے ArgumentParser بطور print_string آبجیکٹ سمجھا جائے گا۔

نوٹ کریں کہ بطور ڈیفالٹ ، add_argument طریقہ دلیلوں سے حاصل کردہ اقدار کو ڈور کے طور پر سمجھتا ہے ، لہذا آپ کو اس معاملے میں واضح طور پر قسم کی وضاحت کرنے کی ضرورت نہیں ہے۔ None کی ڈیفالٹ ویلیو اضافی دلائل کو بھی تفویض کی جاتی ہے ، جب تک کہ اوور رائیڈ نہ ہو۔

ایک بار پھر مدد کے پیغام پر ایک نظر ڈالیں:

استعمال: test.py [-h] [print_string]


ایک ٹیسٹ پروگرام۔


پوزیشنل دلائل:

print_string فراہم کردہ دلیل پرنٹ کرتا ہے۔


اختیاری دلائل:

-h ، -مدد کا یہ پیغام دکھائیں اور باہر نکلیں۔

آؤٹ پٹ کی لائنوں میں سے ایک پوزیشنل دلائل کہتی ہے۔ چونکہ دلیل کے لیے کوئی مطلوبہ الفاظ کی وضاحت نہیں کی گئی ہے ، فی الحال دلیل کو ایک پوزیشنل دلیل کے طور پر سمجھا جاتا ہے جہاں فراہم کردہ دلیل کی ترتیب اور پوزیشن پروگرام پر براہ راست اثر ڈالتی ہے۔ مقامی دلائل بھی لازمی ہیں ، جب تک کہ آپ دستی طور پر ان کے رویے کو تبدیل نہ کریں۔

اختیاری دلائل کی وضاحت اور تجزیہ کرنے کے لیے ، آپ استعمال کر سکتے ہیں - (ڈبل ڈیش) اور ڈیفالٹ دلیل کا استعمال کرتے ہوئے ان کی ڈیفالٹ اقدار کو تبدیل کر سکتے ہیں۔

درآمدارگپارس

تجزیہ کار =ارگ پارسدلیل پارسر۔(تفصیل='ایک ٹیسٹ پروگرام۔')

تجزیہ کار.add_argument('-پرنٹ_اسٹرنگ'، مدد=فراہم کردہ دلیل پرنٹ کرتا ہے۔،پہلے سے طے شدہ=TOبے ترتیب تار.)

دلائل= تجزیہ کار.parse_args()

پرنٹ کریں(دلائلprint_string)

اب جب آپ بغیر کسی دلیل کے test.py اسکرپٹ چلاتے ہیں تو آپ کو بے ترتیب تار ملنی چاہیے۔ پیداوار کے طور پر. آپ اپنی پسند کے کسی بھی سٹرنگ کو پرنٹ کرنے کے لیے اختیاری طور پر –print_string کی ورڈ بھی استعمال کر سکتے ہیں۔

$ ./پرکھ.py--print_string LinuxHint۔کے ساتھLinuxHint.com

نوٹ کریں کہ آپ اضافی ضرورت = حقیقی دلیل استعمال کرکے ایک اختیاری دلیل کو لازمی بنا سکتے ہیں۔

آخر میں ، آپ فعل کو کم کرنے کے لیے - (سنگل ڈیش) کا استعمال کرتے ہوئے دلیل کے شارٹ ہینڈ ورژن کی وضاحت بھی کر سکتے ہیں۔

درآمدارگپارس

تجزیہ کار =ارگپارسدلیل پارسر۔(تفصیل='ایک ٹیسٹ پروگرام۔')

تجزیہ کار.add_argument(-پی، '-پرنٹ_اسٹرنگ'، مدد=فراہم کردہ دلیل پرنٹ کرتا ہے۔،پہلے سے طے شدہ=TOبے ترتیب تار.)

دلائل= تجزیہ کار.parse_args()

پرنٹ کریں(دلائلprint_string)

مندرجہ ذیل کمانڈ چلانے سے آپ کو اوپر جیسا ہی نتیجہ ملنا چاہیے:

$ ./پرکھ.py-p لینکس ہنٹ۔کے ساتھ

مثال 3: ایک انٹیجر دلیل کو سنبھالیں۔

ان دلائل کو سنبھالنے کے لیے جن کو عدد کی اقدار کی ضرورت ہوتی ہے ، آپ کو قسم کی مطلوبہ الفاظ کو انٹ پر سیٹ کرنے کی ضرورت ہوتی ہے تاکہ توثیق کی اجازت دی جا سکے اور حالت پوری نہ ہونے کی صورت میں غلطیاں پھینک دیں۔

درآمدارگپارس

تجزیہ کار =ارگپارسدلیل پارسر۔(تفصیل='ایک ٹیسٹ پروگرام۔')

تجزیہ کار.add_argument('-پی'، '-پرنٹ_اسٹرنگ'، مدد=فراہم کردہ دلیل پرنٹ کرتا ہے۔، قسم=int)

دلائل= تجزیہ کار.parse_args()

پرنٹ کریں(دلائلprint_string)

مندرجہ ذیل کمانڈ کو چلانے کی کوشش کریں:

$ ./پرکھ.py-p لینکس ہنٹ۔کے ساتھ

آپ کو اس طرح کی غلطی ملنی چاہئے:

استعمال: test.py [-h] [-p PRINT_STRING]

test.py: error: دلیل -p/-print_string: غلط int ویلیو: 'LinuxHint.com'

ایک عددی قیمت کی فراہمی آپ کو درست نتیجہ دے گی:

$ ./پرکھ.py-پی1000۔1000۔

مثال 4: صحیح اور جھوٹے ٹوگلز کو سنبھالیں۔

آپ کسی بھی اقدار کے بغیر دلائل پاس کر سکتے ہیں تاکہ انہیں ایکشن دلیل کا استعمال کرتے ہوئے سچ اور جھوٹے جھنڈے سمجھا جا سکے۔

درآمدارگپارس

تجزیہ کار =ارگپارسدلیل پارسر۔(تفصیل='ایک ٹیسٹ پروگرام۔')

تجزیہ کار.add_argument('-پی'، '-پرنٹ_اسٹرنگ'، مدد=فراہم کردہ دلیل پرنٹ کرتا ہے۔،عمل='سٹور_ٹرو')

دلائل= تجزیہ کار.parse_args()

پرنٹ کریں(دلائلprint_string)

آؤٹ پٹ کے طور پر ایک سادہ True حاصل کرنے کے لیے نیچے دی گئی کمانڈ کو چلائیں:

$ ./پرکھ.py-پی

اگر آپ -p دلیل کے بغیر اسکرپٹ چلاتے ہیں تو ، اس کے بجائے غلط قیمت مقرر کی جائے گی۔ ایکشن کلیدی لفظ کا ویلیو سٹور_ٹرو پرنٹ_اسٹرنگ متغیر کو ایک حقیقی قدر تفویض کرتا ہے جب بھی -p دلیل واضح طور پر بیان کی جاتی ہے ، ورنہ غلط کو متغیر کو تفویض کیا جاتا ہے۔

مثال 5: دلیل اقدار کو فہرست کے طور پر سمجھو۔

اگر آپ ایک ہی وقت میں متعدد اقدار حاصل کرنا چاہتے ہیں اور انہیں فہرست میں محفوظ کرنا چاہتے ہیں تو آپ کو درج ذیل فارمیٹ میں نرگس مطلوبہ الفاظ فراہم کرنے کی ضرورت ہے۔

درآمدارگپارس

تجزیہ کار =ارگپارسدلیل پارسر۔(تفصیل='ایک ٹیسٹ پروگرام۔')

تجزیہ کار.add_argument('-پی'، '-پرنٹ_اسٹرنگ'، مدد=فراہم کردہ دلیل پرنٹ کرتا ہے۔،نرگس='*')

دلائل= تجزیہ کار.parse_args()

پرنٹ کریں(دلائلprint_string)

مندرجہ بالا کوڈ کو جانچنے کے لیے درج ذیل کمانڈ کو چلائیں:

$ ./پرکھ.py-p a b

آپ کو اس طرح کچھ آؤٹ پٹ ملنا چاہیے:

['a'، 'b']

نتیجہ

آرگپارس ماڈیول کمانڈ لائن ایپلی کیشنز کے رویے کو بہتر بنانے اور صارف کی فراہم کردہ اقدار کو پارس کرنے کے بہت سارے اختیارات کے ساتھ کافی جامع ہے۔ یہ مثالیں صرف argparse ماڈیول کے بنیادی استعمال کو چھوتی ہیں۔ جدید اور پیچیدہ ایپلی کیشنز کے لیے ، آپ کو مختلف نفاذ کی ضرورت پڑ سکتی ہے۔ ملاحظہ کریں سرکاری دستاویزات ماڈیول کی مکمل وضاحت کے لیے