2017-02-10 2 views
0

Теперь я использую getopt в Python и знаю некоторые основные функции. Но мне интересно, есть ли способ разобрать два или более аргументов после опции.Как разобрать два или более аргумента после опции using getopt в Python?

например.

python test.py -a 111 -b 222 333 

Как получить как «222» и «333», когда я анализирую опцию «-b'.Actually я могу только поймать„222“.

+0

Использование CSV и раскол, когда вы разбираете? 222,333 – AK47

+0

@tehjoker Да, это решение для добавления дополнительных символов. Возможно, getopt не включает метод, который я хочу. – gdbb

ответ

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 
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