У меня проблемы с argparse.Моя цель состоит в том, чтобы пользователь выбрал один и только один параметр (-a, -b, -c и т. Д.), А затем аргументы для этого параметра.Для этого я использую подпарсеры:
parser_iq = subparsers.add_parser('iq', help='iq help')
parser_iq.add_argument("-iq", "--index_query", nargs="+", action=required_length(1,6),type=organize_args, help="Choose an index to query for. Start-date, end-date, "\
"csv, json, stdout are all optional")
Это только один из подпарсеров, которые я планирую иметь.
Проблема : При выполнении этого в командной строке:
python3.6 main.py iq "index_name_here"
Я получаю сообщение об ошибке, что «index_name_here» не распознается.Я анализирую это так:
args = parser.parse_args()
Я обнаружил некоторые проблемы, похожие на мою, но они передавались в sys.argv в parse_args (), что было их проблемой.
Как я могу сделать так, чтобы argparse распознал переданные аргументы?Кроме того, есть ли способ, чтобы за один раз была передана только одна опция?Например:
Правильно:
main.py option1 arg1 arg2
Неправильно:
main.py option1 option2 arg1 arg2
Спасибо!