Я использую argparse
для разбора командной строки Python, который должен выглядеть следующим образом: python script_name.py --sdks=first, second
аргумент `argparse` множественного выбора?
Мой сценарий выглядит следующим образом:
sdk_choises = ['aio','sw']
parser = argparse.ArgumentParser(description='Blah blah')
parser.add_argument('--sdks', action='append', nargs='+', required=True, help='specifies target SDK(s)')
args = parser.parse_args()
if 'aio' in args.sdks:
# do something with aio
if 'sw' in args.sdks:
# do something with sw
Когда я выполняю: python script_name.py --sdks=aio, sw
Я получаю сообщение об ошибке:
"использование: script.py [-h] --sdks SDKs [...] SDKs
build.py: ошибка: непризнанные аргументы: ЮЗ"
Я хотел бы иметь возможность выбрать один или все варианты:
python script_name.py --sdks=first
python script_name.py --sdks=second
python script_name.py --sdks=first, second
Где я ошибся?
Вы, конечно, должны удалить запятую: 'питона script_name.py - -sdks aio sw' – NiziL
Ошибка такая же, без запятой. Как определяется разделитель? Это пробел или запятая? – Danijel
Я думаю, что это зависит от вашей оболочки, но разделитель часто «». Я только что проверил ваш код (python 2.7.6 на ubuntu 14.04.3), все в порядке:/Ошибка должна быть расположена в файле build.py – NiziL