लघु जवाब आपको लगता है कि क्योंकि nargs की तरह कुछ का समर्थन नहीं करता नहीं कर सकता है '2 +'।
parser = argparse.ArgumentParser(usage='%(prog)s [-h] file file [file ...]')
parser.add_argument('file1', nargs=1, metavar='file')
parser.add_argument('file2', nargs='+', metavar='file', help=argparse.SUPPRESS)
namespace = parser.parse_args()
namespace.file = namespace.file1 + namespace.file2
चाल है कि आप की जरूरत है::
लांग जवाब आप वैकल्पिक हल कर सकते हैं कुछ इस तरह का उपयोग कर वह यह है कि
- उपयोग
usage
आप पार्सर को उपयोग के स्ट्रिंग के मालिक हैं प्रदान करने के लिए
- सहायता स्ट्रिंग
- में किसी भिन्न नाम के साथ तर्क प्रदर्शित करने के लिए
metavar
का उपयोग करेंका उपयोग करें 10 में से एक चर के लिए मदद को प्रदर्शित करने से बचने के लिए
- मर्ज दो अलग चर सिर्फ
Namespace
उद्देश्य यह है कि पार्सर रिटर्न
उपरोक्त उदाहरण नीचे दी गई सहायता स्ट्रिंग का उत्पादन करने के लिए एक नई विशेषता जोड़कर:
usage: test.py [-h] file file [file ...]
positional arguments:
file
optional arguments:
-h, --help show this help message and exit
और अभी भी असफल हो जायेगी जब कम से कम दो तर्क पारित कर रहे हैं:
$ python test.py arg
usage: test.py [-h] file file [file ...]
test.py: error: too few arguments
इसके अलावा http://stackoverflow.com/quest पर एक नजर है आयनों/4194948/अजगर-argparse-वहाँ एक तरह से करने के लिए निर्दिष्ट एक रेंज में nargs है-। इससे मदद टेक्स्ट में गड़बड़ (या आसपास के साथ गड़बड़) किए बिना और अधिक लचीलापन की अनुमति मिलती है। – Evert