argparse的参数列表

Con*_*Kan 6 python argparse

我试图用argparse传递一个参数列表,但我发现的唯一方法是重写我想要传递的每个参数的选项:

我目前使用的是什么:

main.py -t arg1 -a arg2
Run Code Online (Sandbox Code Playgroud)

而且我想:

main.py -t arg1 arg2 ...
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

parser.add_argument("-t", action='append', dest='table', default=[], help="")
Run Code Online (Sandbox Code Playgroud)

vau*_*tah 13

用途nargs:

ArgumentParser对象通常将单个命令行参数与要采取的单个操作相关联.所述NARGS关键字参数与单个动作不同数量的命令行参数.

例如,if nargs设置为'+'

就像'*',所有存在的命令行参数都被收集到一个列表中.此外,如果不存在至少一个命令行参数,将生成错误消息.

所以,你的代码看起来像

parser.add_argument('-t', dest='table', help='', nargs='+')
Run Code Online (Sandbox Code Playgroud)

这样,-t参数将list自动收集(您不必明确指定action).