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是否支持
*