Python 如何在argparse中为单个选项提供多个arg
我想允许用户输入多个Python 如何在argparse中为单个选项提供多个arg,python,python-3.x,argparse,Python,Python 3.x,Argparse,我想允许用户输入多个id作为参数。例如,类似于: import argparse parser = argparse.ArgumentParser(description='Dedupe assets based on group_id.') parser.add_argument('--ids', nargs='?', default=None, type=int, help='Enter your ids') parser.parse_args() $ python test.py --
id
作为参数。例如,类似于:
import argparse
parser = argparse.ArgumentParser(description='Dedupe assets based on group_id.')
parser.add_argument('--ids', nargs='?', default=None, type=int, help='Enter your ids')
parser.parse_args()
$ python test.py --ids 1 2 3 4
但当我进入这样的领域时:
import argparse
parser = argparse.ArgumentParser(description='Dedupe assets based on group_id.')
parser.add_argument('--ids', nargs='?', default=None, type=int, help='Enter your ids')
parser.parse_args()
$ python test.py --ids 1 2 3 4
我得到以下错误:
test.py:错误:无法识别的参数:2 3 4
允许/输入单个选项的多个参数的正确方法是什么?您可以使用“+”而不是“?”
import argparse
parser = argparse.ArgumentParser(description='Dedupe assets based on group_id.')
parser.add_argument('--ids', nargs='+', default=None, type=int, help='Enter your ids')
args = parser.parse_args()
print(args.ids)
这回答了你的问题吗@MauriceMeyer哦,我明白了。nargs是懒惰的,所以我需要做
+
而不是?
“?”是可选的(0或1),“+”是1或更多,等等。它尝试在有意义的地方遵循
regex`约定。查看文档中的“nargs/?”了解更多详细信息。@hpaulj oh我把?
和*
(0或更多)搞混了。nargs是否支持*
?