Python argparse: передача одного аргумента без имени параметра - PullRequest
0 голосов
/ 01 марта 2019

Мне бы хотелось, чтобы один из моих параметров командной строки был доступен по умолчанию, если он передан как один параметр.

Например:

parser.add_argument('--fonts-install',
                    help='Number of fonts to install.'
                    dest='fonts_install',
                    required=False,
                    default=0)

Должен иметь тот же эффектпри вызове:

fonts.py --fonts-install 5

или

fonts.py 5

Однако следует сообщать об ошибке при попытке использовать значение по умолчанию с другими параметрами:

# this is an error!
fonts.py 5 --verbose 

1 Ответ

0 голосов
/ 02 марта 2019

Реализовано как позиционный аргумент и добавлена ​​пост-проверка:

parser.add_argument(dest='fonts_install', metavar='N', 
    type=int, nargs='?', help='Fonts install', default=-1)

# And check compatibility with other arguments
...