我在使用 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
谢谢!