Python Argparse: как получить доступ к аргументам - PullRequest
0 голосов
/ 04 июля 2018

кажется, что этот вопрос задавался раньше очень часто, но я все равно не могу найти правильный ответ. так что вот снова ...

пример кода: один необязательный аргумент arg преобразуется в dict.

import argparse

epilog = '''usage example:'''

parser = argparse.ArgumentParser(description="add watchit hosts", epilog=epilog)
parser.add_argument('--add', nargs='*', default="-1", metavar="key 'value'")
args = vars(parser.parse_args())
print args
print args['name']

python argparse_test.py - имя дополнения 'aixbuildhost' выплевывает следующее:

{'add': ['name', 'aixbuildhost']}
Traceback (most recent call last):
  File "argparse_test.py", line 9, in <module>
    print args['name']
KeyError: 'name'

поэтому большой вопрос, как мне получить "имя"?

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Или используйте:

list(args.values())[0][0]

Выход:

'name'

list(args.values())[0][1]

Выход:

'aixbuildhost'
0 голосов
/ 04 июля 2018

Ключ 'add', значение представляет собой список, содержащий два аргумента - name и aixbuildhost. Для доступа к значениям:

args['add'][0] - вернется 'name'

args['add'][1] - вернет 'aixbuildhost'

Подробнее о том, как использовать и анализировать словари здесь .

...