如何在 Python 中使用 getopt 解析选项后的两个或多个参数?

How to parse two or more arguments after a option using getopt in Python?

我现在在 Python 中使用 getopt 并且了解一些基本用法。 但是我想知道是否有办法在一个选项后解析两个或多个参数。

例如

python test.py -a 111 -b 222 333

如何在解析选项'-b'时同时获取'222'和'333'。实际上我只能捕获'222'。

您会使用 argparse(为什么选择 optparse,为什么?):

>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo', action='append')
>>> parser.parse_args('--foo 1 --foo 2'.split())
Namespace(foo=['1', '2'])

来自文档: https://docs.python.org/3/library/argparse.html

例如:

python test.py -a 111 -b 222 -b 333 -b 4444

参数 'nargs' 可以在 argparse 中做到这一点。

>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--foo', nargs=2)
>>> parser.add_argument('bar', nargs=1)
>>> parser.parse_args('c --foo a b'.split())
Namespace(bar=['c'], foo=['a', 'b'])

例如

python --foo 111 222

argparse documentation