में उपयोग किए जाने वाले तर्क के रूप में एक मनमानी स्ट्रिंग को पास करें, मैं argparse का उपयोग करके वैकल्पिक तर्क के रूप में एक मनमानी स्ट्रिंग को कैसे परिभाषित करूं?पायथन - Argparse का उपयोग करके, स्क्रिप्ट
उदाहरण:
[[email protected]]$ ./script.py FOOBAR -a -b
Running "script.py"...
You set the option "-a"
You set the option "-b"
You passed the string "FOOBAR"
आदर्श रूप में, मैं कोई फर्क नहीं पर तर्कों की स्थिति चाहते हैं। अर्थात:
./script.py -a FOOBAR -b
== ./script.py -a -b FOOBAR
== ./script.py FOOBAR -a -b
मार में, मैं जबकि getopts
का उपयोग कर ऐसा कर सकते हैं। एक मामले पाश में सभी वांछित स्विच से निपटने के बाद, मैं एक पंक्ति है कि shift $((OPTIND-1))
पढ़ता होगा, और वहाँ से मैं का उपयोग कर सभी शेष तर्क का उपयोग कर सकते मानक $1
, $2
, $3
, आदि ...
करता है कि exisit की तरह कुछ Argparse के लिए?
क्या आप Argparse ट्यूटोरियल के माध्यम से गए थे? जो कुछ भी आप वर्णन कर रहे हैं वह है – SheetJS
आईआईआरसी पर चर्चा नहीं किया गया एकमात्र हिस्सा 'nargs =" * "व्यवहार है (ताकि एक स्थितित्मक तर्क सभी शेष तर्कों को पकड़ सके) – SheetJS
@ निर्क, मुश्किल बात यह है कि यदि आप अभी उपयोग करते हैं 'parse_args', जैसे ही यह "स्थितित्मक" तर्क को देखता है, यह अन्य तर्कों की तलाश करना बंद कर देता है और तर्कसंगत तर्क से अंत तक तर्क एकत्र करता है। ज्यादातर मामलों में यह ठीक है, लेकिन वह अपना पहला और तीसरा उदाहरण तोड़ देगा। – jedwards