argparseप्रलेखन यथोचित अच्छा है, लेकिन बाहर कुछ उपयोगी जानकारी के पत्ते जो स्पष्ट नहीं हो सकता है। (@ डिएगो नवारो ने पहले ही इसमें से कुछ का उल्लेख किया था, लेकिन मैं उनके उत्तर पर थोड़ा विस्तार करने की कोशिश करूंगा।) मूल उपयोग इस प्रकार है:
parser = argparse.ArgumentParser()
parser.add_argument('-f', '--my-foo', default='foobar')
parser.add_argument('-b', '--bar-value', default=3.14)
args = parser.parse_args()
जिस ऑब्जेक्ट से आप वापस आते हैं parse_args()वह एक 'नेमस्पेस' ऑब्जेक्ट है: एक ऑब्जेक्ट जिसका सदस्य चर आपके कमांड-लाइन तर्कों के नाम पर रखा गया है। Namespaceवस्तु कैसे आप अपने तर्क और उनके साथ जुड़े मानों तक पहुंच है:
args = parser.parse_args()
print args.my_foo
print args.bar_value
(ध्यान दें कि argparseचर का नामकरण करते समय आपके तर्क नामों में '-' बदल जाता है।)
कई स्थितियों में आप झंडे के रूप में तर्कों का उपयोग करना चाह सकते हैं, जिनका कोई मूल्य नहीं है। आप इसे इस तरह से तैयार कर सकते हैं:
parser.add_argument('--foo', action='store_true')
parser.add_argument('--no-foo', action='store_false')
उपरोक्त मूल्य सच के साथ 'फू' नाम के चर बनाएंगे, और क्रमशः मूल्य गलत के साथ 'no_foo':
if (args.foo):
print "foo is true"
if (args.no_foo is False):
print "nofoo is false"
ध्यान दें कि आप एक तर्क जोड़ते समय "आवश्यक" विकल्प का उपयोग कर सकते हैं:
parser.add_argument('-o', '--output', required=True)
इस तरह यदि आप कमांड लाइन पर इस तर्क को छोड़ देते argparseहैं, तो यह आपको बता देगा कि यह गायब है और आपकी स्क्रिप्ट का निष्पादन रोक देगा।
अंत में, ध्यान दें कि varsफ़ंक्शन का उपयोग करके अपने तर्कों की एक तानाशाही संरचना बनाना संभव है , यदि यह आपके लिए जीवन को आसान बनाता है।
args = parser.parse_args()
argsdict = vars(args)
print argsdict['my_foo']
print argsdict['bar_value']
जैसा कि आप देख सकते हैं, varsअपने तर्क नामों के साथ एक कुंजी देता है जैसे कि कुंजी और उनके मान, एर, मान।
बहुत सारे अन्य विकल्प और चीजें हैं जो आप कर सकते हैं, लेकिन यह सबसे आवश्यक, सामान्य उपयोग परिदृश्यों को कवर करना चाहिए।
sys.argvआप चाहते हैं कि तर्क के लिए जाँच करें ...