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

时间:2017-02-10 13:26:27

标签: python getopt

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

e.g。

python test.py -a 111 -b 222 333

如何同时获得' 222'和ō 333'当我解析选项' -b'。实际上我只能抓住' 222'。

2 个答案:

答案 0 :(得分:1)

你会使用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

答案 1 :(得分:0)

参数'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'])

e.g。

python --foo 111 222

argparse documentation