在 Argparse 中使用多个相同的参数
Using Multiple Identical Arguments with Argparse
我正在使用 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' 会被传递)
根据文档,如果您使用 action="append"
,它似乎可以满足您的要求。
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo', action='append')
>>> parser.parse_args('--foo 1 --foo 2'.split())
Namespace(foo=['1', '2'])
我正在使用 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' 会被传递)
根据文档,如果您使用 action="append"
,它似乎可以满足您的要求。
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo', action='append')
>>> parser.parse_args('--foo 1 --foo 2'.split())
Namespace(foo=['1', '2'])