我正在argparse解析应该看起来像这样的Python命令行:
python script_name.py --sdks=first, second
Run Code Online (Sandbox Code Playgroud)
我的脚本如下所示:
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
Run Code Online (Sandbox Code Playgroud)
当我执行:
python script_name.py --sdks=aio, sw我得到错误:
"usage: script.py [-h] --sdks SDKS [SDKS ...]
build.py: error: unrecognized arguments: sw"
Run Code Online (Sandbox Code Playgroud)
我希望能够选择一个或所有选择:
python script_name.py --sdks=first
python script_name.py --sdks=second
python script_name.py --sdks=first, second
Run Code Online (Sandbox Code Playgroud)
我哪里做错了?
以下工作很好:
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)
Run Code Online (Sandbox Code Playgroud)
您不需要=在传递选项时使用,只需使用:
$ python test.py --sdks ai pw
['ai', 'pw']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7236 次 |
| 最近记录: |