పైథాన్ స్క్రిప్ట్‌కు కమాండ్ లైన్ వాదనలను ఎలా జోడించాలి

How Add Command Line Arguments Python Script



మీరు పైథాన్ స్క్రిప్ట్ లేదా అప్లికేషన్‌ను ప్రధానంగా టెర్మినల్ ఎమ్యులేటర్లలో లేదా GUI యాప్‌లలో కూడా అభివృద్ధి చేసినట్లయితే, కమాండ్ లైన్ ఆర్గ్యుమెంట్‌లను జోడించడం వలన దాని వినియోగం, కోడ్ రీడబిలిటీ, అప్లికేషన్ స్ట్రక్చర్ మరియు తుది వినియోగదారుల కోసం అప్లికేషన్ యొక్క మొత్తం యూజర్ ఫ్రెండ్లీని మెరుగుపరుస్తుంది. ఈ కమాండ్ లైన్ ఆర్గ్యుమెంట్‌లు ఎంపికలు లేదా స్విచ్‌లు అని కూడా పిలువబడతాయి మరియు మీరు సాధారణంగా బాష్ స్క్రిప్ట్‌లు మరియు ఇతర C / C ++ ఆధారిత ప్రోగ్రామ్‌లలో చూసే వాదనల మాదిరిగానే పనిచేస్తాయి.

పైథాన్ స్క్రిప్ట్‌లకు వాదనలను జోడించడానికి, మీరు ఆర్గ్‌పార్స్ అనే అంతర్నిర్మిత మాడ్యూల్‌ని ఉపయోగించాల్సి ఉంటుంది. పేరు సూచించినట్లుగా, పైథాన్ స్క్రిప్ట్ లేదా అప్లికేషన్‌ను ప్రారంభించేటప్పుడు ఉపయోగించే కమాండ్ లైన్ ఆర్గ్యుమెంట్‌లను ఇది అన్వయించింది. ఈ అన్వయించబడిన వాదనలు సరైన రకం అని నిర్ధారించడానికి అర్గ్‌పార్స్ మాడ్యూల్ ద్వారా కూడా తనిఖీ చేయబడతాయి. వాదనలలో చెల్లని విలువలు ఉంటే లోపాలు లేవనెత్తబడతాయి.







అర్గ్‌పార్స్ మాడ్యూల్ యొక్క ఉపయోగం ఉదాహరణల ద్వారా బాగా అర్థం చేసుకోవచ్చు. మీరు ఆర్గ్‌పార్స్ మాడ్యూల్‌తో ప్రారంభించే కొన్ని కోడ్ నమూనాలు క్రింద ఉన్నాయి.



ఉదాహరణ 1: సహాయ వాదన మరియు సందేశాన్ని రూపొందించండి

దిగువ కోడ్ నమూనాను పరిగణించండి:



దిగుమతిఆర్గ్‌పర్స్

పార్సర్ =ఆర్గ్‌పర్స్.ఆర్గ్యుమెంట్ పార్సర్(వివరణ='ఒక పరీక్ష కార్యక్రమం.')

వాదిస్తుంది= పార్సర్.పార్స్_ఆర్గ్స్()

మొదటి స్టేట్‌మెంట్ ఆర్గ్‌పార్స్ మాడ్యూల్‌ను దిగుమతి చేస్తుంది. తరువాత, ఆర్గ్యుమెంట్పార్సర్ ఆబ్జెక్ట్ యొక్క కొత్త ఉదాహరణ సృష్టించబడింది మరియు ప్రోగ్రామ్ కోసం సంక్షిప్త వివరణ వాదనగా అందించబడుతుంది. కమాండ్ లైన్ ఆర్గ్యుమెంట్ విలువలను పైథాన్ అర్థం చేసుకున్న డేటా రకాలకు మార్చడానికి ఆర్గ్యుమెంట్పార్సర్ ఆబ్జెక్ట్ అవసరం. ఇది చివరి స్టేట్‌మెంట్‌లో చూపిన విధంగా, ArgumentParser ఆబ్జెక్ట్ యొక్క parse_args పద్ధతి ద్వారా చేయబడుతుంది.





మీరు పైన పేర్కొన్న కోడ్ నమూనాను test.py అనే ఫైల్‌లో సేవ్ చేశారని అనుకుంటే, దిగువ ఆదేశాలను అమలు చేయడం వల్ల ప్రోగ్రామ్‌కు సంబంధించిన సందేశాలను మీకు సహాయం చేస్తుంది.

$ ./పరీక్ష.పై-హెచ్

$ ./పరీక్ష.పై-సహాయం

మీరు ఇలాంటి అవుట్‌పుట్‌ను పొందాలి:



వినియోగం: test.py [-h]


ఒక పరీక్ష కార్యక్రమం.


ఐచ్ఛిక వాదనలు:

-h, -సహాయం ఈ సందేశాన్ని చూపించి నిష్క్రమించండి

పైన పేర్కొన్న కోడ్ నమూనాకు అన్వయించబడిన వాదనలను నిర్వహించడానికి మరియు వాటిని వస్తువులుగా మార్చడానికి ఎటువంటి తర్కం జోడించబడలేదని గమనించండి. అందువల్ల, వ్యక్తిగత వాదనల కోసం సహాయ సందేశాలు అవుట్‌పుట్‌లో చూపబడవు. మీ ప్రోగ్రామ్‌లో పార్స్ చేసిన ఆర్గ్యుమెంట్‌ల విలువలను నిర్వహించడానికి మీరు లాజిక్‌ను జోడించిన తర్వాత, సహాయక సందేశాలు వ్యక్తిగత వాదనల కోసం వివరణను చూపడం ప్రారంభిస్తాయి.

ఉదాహరణ 2: స్ట్రింగ్ వాదనను నిర్వహించండి

మీ పైథాన్ స్క్రిప్ట్ ద్వారా ఆమోదయోగ్యమైన వాదనలను జోడించడానికి, మీరు add_argument పద్ధతిని ఉపయోగించాలి. కింది కోడ్‌ని చూడండి:

దిగుమతిఆర్గ్‌పర్స్

పార్సర్ =ఆర్గ్‌పర్స్.ఆర్గ్యుమెంట్ పార్సర్(వివరణ='ఒక పరీక్ష కార్యక్రమం.')

పార్సర్.వాదన_ని జోడించండి('print_string', సహాయం='సరఫరా చేసిన ఆర్గ్యుమెంట్‌ను ప్రింట్ చేస్తుంది.')

వాదిస్తుంది= పార్సర్.పార్స్_ఆర్గ్స్()

ముద్రణ(వాదిస్తుంది.print_ స్ట్రింగ్)

Add_argument పద్ధతిని ఉపయోగించడాన్ని చూపుతూ కొత్త స్టేట్‌మెంట్ జోడించబడింది. స్క్రిప్ట్‌ను ప్రారంభించేటప్పుడు జోడించిన ఏదైనా ఆర్గ్యుమెంట్ ArgumentParser ద్వారా print_string ఆబ్జెక్ట్‌గా పరిగణించబడుతుంది.

డిఫాల్ట్‌గా, add_argument పద్ధతి వాదనల నుండి తిరిగి పొందిన విలువలను స్ట్రింగ్‌లుగా పరిగణిస్తుందని గమనించండి, కాబట్టి మీరు ఈ సందర్భంలో రకాన్ని స్పష్టంగా పేర్కొనవలసిన అవసరం లేదు. ఓవర్‌రైడ్ చేయకపోతే, ఏ ఒక్క డిఫాల్ట్ విలువ కూడా అదనపు ఆర్గ్యుమెంట్‌లకు కేటాయించబడదు.

మరోసారి సహాయ సందేశాన్ని చూడండి:

వినియోగం: test.py [-h] [print_string]


ఒక పరీక్ష కార్యక్రమం.


స్థాన వాదనలు:

print_string సరఫరా చేయబడిన వాదనను ప్రింట్ చేస్తుంది.


ఐచ్ఛిక వాదనలు:

-h, -సహాయం ఈ సందేశాన్ని చూపించి నిష్క్రమించండి

అవుట్‌పుట్‌లోని ఒక పంక్తి స్థాన వాదనలను చెబుతుంది. వాదనకు కీవర్డ్ ఏదీ నిర్వచించబడనందున, ప్రస్తుతం వాదనను స్థాన వాదనగా పరిగణిస్తారు, ఇక్కడ సరఫరా చేయబడిన వాదన యొక్క క్రమం మరియు స్థానం ప్రోగ్రామ్‌పై ప్రత్యక్ష ప్రభావాన్ని చూపుతాయి. మీరు వారి ప్రవర్తనను మాన్యువల్‌గా మార్చుకోకపోతే స్థాన వాదనలు కూడా తప్పనిసరి.

ఐచ్ఛిక వాదనలను నిర్వచించడానికి మరియు అన్వయించడానికి, మీరు - (డబుల్ డాష్) ఉపయోగించవచ్చు మరియు డిఫాల్ట్ ఆర్గ్యుమెంట్ ఉపయోగించి వాటి డిఫాల్ట్ విలువలను మార్చవచ్చు.

దిగుమతిఆర్గ్‌పర్స్

పార్సర్ =ఆర్గ్‌పర్స్.ఆర్గ్యుమెంట్ పార్సర్(వివరణ='ఒక పరీక్ష కార్యక్రమం.')

పార్సర్.వాదన_ని జోడించండి('--print_string', సహాయం='సరఫరా చేసిన ఆర్గ్యుమెంట్‌ను ప్రింట్ చేస్తుంది.',డిఫాల్ట్=కుయాదృచ్ఛికంగా స్ట్రింగ్.)

వాదిస్తుంది= పార్సర్.పార్స్_ఆర్గ్స్()

ముద్రణ(వాదిస్తుంది.print_ స్ట్రింగ్)

ఇప్పుడు మీరు ఎటువంటి వాదన లేకుండా test.py స్క్రిప్ట్‌ను అమలు చేసినప్పుడు, మీరు యాదృచ్ఛిక స్ట్రింగ్‌ను పొందాలి. అవుట్‌పుట్‌గా. మీకు నచ్చిన స్ట్రింగ్‌ను ప్రింట్ చేయడానికి మీరు ఐచ్ఛికంగా –print_string కీవర్డ్‌ని కూడా ఉపయోగించవచ్చు.

$ ./పరీక్ష.పై--print_string LinuxHint.తోLinuxHint.com

అదనపు అవసరమైన = నిజమైన వాదనను ఉపయోగించడం ద్వారా మీరు ఐచ్ఛిక వాదనను తప్పనిసరి చేయవచ్చని గమనించండి.

చివరగా, మీరు వెర్బసిటీని తగ్గించడానికి - (సింగిల్ డాష్) ఉపయోగించి వాదన యొక్క సంక్షిప్తలిపి వెర్షన్‌లను కూడా నిర్వచించవచ్చు.

దిగుమతిఆర్గ్‌పర్స్

పార్సర్ =ఆర్గ్‌పర్స్.ఆర్గ్యుమెంట్ పార్సర్(వివరణ='ఒక పరీక్ష కార్యక్రమం.')

పార్సర్.వాదన_ని జోడించండి(-పి, '--print_string', సహాయం='సరఫరా చేసిన ఆర్గ్యుమెంట్‌ను ప్రింట్ చేస్తుంది.',డిఫాల్ట్=కుయాదృచ్ఛికంగా స్ట్రింగ్.)

వాదిస్తుంది= పార్సర్.పార్స్_ఆర్గ్స్()

ముద్రణ(వాదిస్తుంది.print_ స్ట్రింగ్)

కింది ఆదేశాన్ని అమలు చేయడం వలన మీకు పై ఫలితాన్ని ఇవ్వాలి:

$ ./పరీక్ష.పై-పి LinuxHint.తో

ఉదాహరణ 3: ఒక పూర్ణాంక వాదాన్ని నిర్వహించండి

పూర్ణాంక విలువలు అవసరమయ్యే వాదనలను నిర్వహించడానికి, ధృవీకరణను అనుమతించడానికి మరియు షరతులకు అనుగుణంగా లేనట్లయితే లోపాలను విసిరేందుకు మీరు టైప్ కీవర్డ్‌ను int కి సెట్ చేయాలి.

దిగుమతిఆర్గ్‌పర్స్

పార్సర్ =ఆర్గ్‌పర్స్.ఆర్గ్యుమెంట్ పార్సర్(వివరణ='ఒక పరీక్ష కార్యక్రమం.')

పార్సర్.వాదన_ని జోడించండి('-p', '--print_string', సహాయం='సరఫరా చేసిన ఆర్గ్యుమెంట్‌ను ప్రింట్ చేస్తుంది.', రకం=int)

వాదిస్తుంది= పార్సర్.పార్స్_ఆర్గ్స్()

ముద్రణ(వాదిస్తుంది.print_ స్ట్రింగ్)

కింది ఆదేశాన్ని అమలు చేయడానికి ప్రయత్నించండి:

$ ./పరీక్ష.పై-పి LinuxHint.తో

మీరు ఇలాంటి లోపాన్ని పొందాలి:

వినియోగం: test.py [-h] [-p PRINT_STRING]

test.py: లోపం: ఆర్గ్యుమెంట్ -p/-print_string: చెల్లని int విలువ: 'LinuxHint.com'

ఒక పూర్ణాంక విలువను అందించడం వలన మీకు సరైన ఫలితం లభిస్తుంది:

$ ./పరీక్ష.పై-పి10001000

ఉదాహరణ 4: ట్రూ మరియు ఫాల్స్ టోగుల్‌లను హ్యాండిల్ చేయండి

చర్య వాదాన్ని ఉపయోగించి వాటిని ట్రూ మరియు ఫాల్స్ ఫ్లాగ్‌లుగా పరిగణించడానికి మీరు ఎటువంటి విలువలు లేకుండా ఆర్గ్యుమెంట్‌లను పాస్ చేయవచ్చు.

దిగుమతిఆర్గ్‌పర్స్

పార్సర్ =ఆర్గ్‌పర్స్.ఆర్గ్యుమెంట్ పార్సర్(వివరణ='ఒక పరీక్ష కార్యక్రమం.')

పార్సర్.వాదన_ని జోడించండి('-p', '--print_string', సహాయం='సరఫరా చేసిన ఆర్గ్యుమెంట్‌ను ప్రింట్ చేస్తుంది.',చర్య='store_true')

వాదిస్తుంది= పార్సర్.పార్స్_ఆర్గ్స్()

ముద్రణ(వాదిస్తుంది.print_ స్ట్రింగ్)

అవుట్‌పుట్‌గా సాధారణ ట్రూని పొందడానికి దిగువ ఆదేశాన్ని అమలు చేయండి:

$ ./పరీక్ష.పై-పి

మీరు -p ఆర్గ్యుమెంట్ లేకుండా స్క్రిప్ట్‌ను రన్ చేస్తే, బదులుగా తప్పుడు విలువ కేటాయించబడుతుంది. చర్య కీవర్డ్ యొక్క విలువ store_true -p వాదన స్పష్టంగా పేర్కొన్నప్పుడల్లా print_string వేరియబుల్‌కు నిజమైన విలువను కేటాయిస్తుంది, లేకుంటే వేరియబుల్‌కు తప్పుడు కేటాయించబడుతుంది.

ఉదాహరణ 5: వాదన విలువలను జాబితాగా పరిగణించండి

మీరు ఒకేసారి బహుళ విలువలను పొందాలనుకుంటే మరియు వాటిని జాబితాలో నిల్వ చేయాలనుకుంటే, మీరు క్రింది ఫార్మాట్‌లో నార్గ్స్ కీవర్డ్‌ను అందించాలి:

దిగుమతిఆర్గ్‌పర్స్

పార్సర్ =ఆర్గ్‌పర్స్.ఆర్గ్యుమెంట్ పార్సర్(వివరణ='ఒక పరీక్ష కార్యక్రమం.')

పార్సర్.వాదన_ని జోడించండి('-p', '--print_string', సహాయం='సరఫరా చేసిన ఆర్గ్యుమెంట్‌ను ప్రింట్ చేస్తుంది.',నార్గ్స్='*')

వాదిస్తుంది= పార్సర్.పార్స్_ఆర్గ్స్()

ముద్రణ(వాదిస్తుంది.print_ స్ట్రింగ్)

పై కోడ్‌ని పరీక్షించడానికి కింది ఆదేశాన్ని అమలు చేయండి:

$ ./పరీక్ష.పై-పి ఎ బి

మీరు ఇలాంటి అవుట్‌పుట్‌ను పొందాలి:

['a', 'b']

ముగింపు

కమాండ్ లైన్ అనువర్తనాల ప్రవర్తనను సర్దుబాటు చేయడానికి మరియు వినియోగదారు సరఫరా చేసిన విలువలను అన్వయించడానికి టన్నుల ఎంపికలతో అర్గ్‌పార్స్ మాడ్యూల్ చాలా సమగ్రంగా ఉంటుంది. ఈ ఉదాహరణలు argparse మాడ్యూల్ యొక్క ప్రాథమిక వినియోగాన్ని మాత్రమే తాకుతాయి. అధునాతన మరియు సంక్లిష్ట అనువర్తనాల కోసం, మీకు వేర్వేరు అమలులు అవసరం కావచ్చు. సందర్శించండి అధికారిక డాక్యుమెంటేషన్ మాడ్యూల్ యొక్క పూర్తి వివరణ కోసం.