Я пытаюсь использовать модуль 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 '-'
Единственная разница между ними заключается в том, что я добавляю аргумент отдельно (в две строки) в первый код, но добавляю их в ту же строку, что и один оператор в ошибочном коде. может кто-нибудь помочь мне понять это лучше?