在 Argparse 中使用多个相同的参数
Posted
技术标签:
【中文标题】在 Argparse 中使用多个相同的参数【英文标题】:Using Multiple Identical Arguments with Argparse 【发布时间】:2022-01-07 09:36:01 【问题描述】:我正在使用 argparse 库 (https://docs.python.org/3/library/argparse.html) 来解析 Python3 脚本的参数。我希望能够多次指定一个特定的参数。例如:
$ myscript -i host1 -i host2
使用 parser.add_argument('-i', nargs='*') 允许使用 -i 的多个参数。例如:
$ myscript -i host1 host2
但是,我希望 -i 出现多次。这可能吗?现在,第二次使用该参数会覆盖第一次(在我最初的示例中,只会传递“host2”)
【问题讨论】:
就在昨天***.com/questions/70165231/… 【参考方案1】:从文档来看,如果你使用action="append"
,它似乎可以做你想做的事。
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo', action='append')
>>> parser.parse_args('--foo 1 --foo 2'.split())
Namespace(foo=['1', '2'])
【讨论】:
是的!我忽略了“动作”关键字参数。所以我的解决方案是parser.add_argument('-i', action='append')
。谢谢!以上是关于在 Argparse 中使用多个相同的参数的主要内容,如果未能解决你的问题,请参考以下文章
使用 optparse 或 argparse 处理使用相同选项的多个参数