Опитвам се да използвам модула argparse, за да анализирам аргументите в командния ред. ето примерния код
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('bar')
parser.add_argument('-foo')
args=parser.parse_args()
print args
стартиране на това
python argparsing.py "hello"
Namespace(bar='hello', foo=None)
това обаче не работи
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('bar','--foo')
#parser.add_argument('-foo')
args=parser.parse_args()
print args
изпълнявайки това дава грешка
python argparsing.py "hello"
Traceback (most recent call last):
File "argparsing.py", line 3, in <module>
parser.add_argument('bar','-foo')
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/argparse.py", line 1267, in add_argument
kwargs = self._get_optional_kwargs(*args, **kwargs)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/argparse.py", line 1397, in _get_optional_kwargs
raise ValueError(msg % tup)
ValueError: invalid option string 'bar': must start with a character '-'
Единствената разлика между двете е, че добавям аргумент отделно (в два реда) в първия код, но ги добавям в същия ред като едно изявление в неуспешния код. може ли някой да ми помогне да разбера това по-добре?