如何在 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
我现在在 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