`argparse`多选参数?

2024-05-17 06:22:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用argparse来解析Python命令行,它应该如下所示:

python script_name.py --sdks=first, second

我的剧本是这样的:

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我得到错误:

"usage: script.py [-h] --sdks SDKS [SDKS ...]  
build.py: error: unrecognized arguments: sw"

我希望能够选择一个或所有选项:

python script_name.py --sdks=first
python script_name.py --sdks=second
python script_name.py --sdks=first, second

我哪里做错了?


Tags: nameinpyparserifscriptargparseargs
1条回答
网友
1楼 · 发布于 2024-05-17 06:22:26

以下操作很好:

import argparse
sdk_choises = ['aio','sw']
parser = argparse.ArgumentParser(description='Blah blah')
parser.add_argument('--sdks', nargs='+', required=True, help='specifies target SDK(s)')
args = parser.parse_args()
print(args.sdks)

传递选项时不需要=,只需使用:

$ python test.py --sdks ai pw
['ai', 'pw']

相关问题 更多 >