संयोजन मैं निम्नलिखित अजगर कार्यक्रम है: अगर मैं इस तरह कार्यक्रम आह्वानअजगर argparse: प्रकार विसंगतियों जब 'विकल्प', 'nargs' और 'डिफ़ॉल्ट'
#!/usr/bin/env python
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('arg', choices=['foo', 'bar', 'baz'], default='foo', nargs='*')
args = parser.parse_args()
print(args)
:
./prog.py
उत्पादन
Namespace(arg='foo')
है लेकिन अगर मैं एक तर्क के रूप foo
साथ कार्यक्रम आह्वान:
./prog.py foo
उत्पादन
Namespace(arg=['foo'])
प्रश्न
मैं कैसे प्राप्त कर सकते हैं arg
के डिफ़ॉल्ट मान एक list
बनने के लिए है?
मैं कोशिश की है
मैं default=['foo']
स्थापित करने की कोशिश की है लेकिन यह है कि परिणाम:
prog.py: error: argument arg: invalid choice: ['foo'] (choose from 'foo', 'bar', 'baz')
कि 'डुप्लिकेट' एक 'संलग्न' कार्रवाई के बारे में है; यह एक डिफ़ॉल्ट 'स्टोर' है। मैं इसे फिर से खोल सकता हूं। – hpaulj
जिस डुप्लिकेट को मैंने अस्वीकार कर दिया है वह है: http://stackoverflow.com/questions/8526675/python-argparse-optional-append-argument-with-choices – hpaulj