Argparse: Способ включения значений по умолчанию в '–help'?

Предположим, у меня есть следующий фрагмент argparse:

diags.cmdln_parser.add_argument( '--scan-time', action = 'store', nargs = '?', type = int, default = 5, help = "Wait SCAN-TIME seconds between status checks.") 

В настоящее время –help возвращает:

 usage: connection_check.py [-h] [--version] [--scan-time [SCAN_TIME]] Test the reliability/uptime of a connection. optional arguments: -h, --help show this help message and exit --version show program's version number and exit --scan-time [SCAN_TIME] Wait SCAN-TIME seconds between status checks. 

Я бы предпочел что-то вроде:

 --scan-time [SCAN_TIME] Wait SCAN-TIME seconds between status checks. (Default = 5) 

Подглядывание в коде форматирования help показало ограниченные возможности. Есть ли разумный способ заставить argparse печатать значение по умолчанию для «-scan-time» аналогичным образом, или я должен просто подклассифицировать формулятор справки?

  • Создание перестановок списка с повторяющимися элементами
  • Конфигурация субдомена Django для конечных точек API
  • сохранение видео в openCV в python
  • Как запустить скрипт python из другого скрипта python и получить возвращаемый код состояния?
  • Python читает файл в формате DOT и возвращает список имен городов
  • Получить индекс первого списка, содержащий подстроку?
  • Подписание RSA и верификация с помощью C #, BouncyCastle и импортированного ключа RSA - пример рабочего Python и нерабочий образец кода C # внутри
  • Печать в терминале цветами с использованием Python?
  • 3 Solutions collect form web for “Argparse: Способ включения значений по умолчанию в '–help'?”

    Используйте argparse.ArgumentDefaultsHelpFormatter :

     parser = argparse.ArgumentParser( # ... other options ... formatter_class=argparse.ArgumentDefaultsHelpFormatter) 

    Процитировать документацию:

    Другой доступный класс formatter, ArgumentDefaultsHelpFormatter , добавит информацию о значении по умолчанию для каждого из аргументов.

    Обратите внимание, что это относится только к аргументам, которые имеют текст помощи; без значения help для аргумента, необходимо добавить информацию.

    Точный вывод для вашего параметра времени сканирования будет следующим:

      --scan-time [SCAN_TIME] Wait SCAN-TIME seconds between status checks. (default: 5) 

    Добавьте '%(default)' в параметр справки, чтобы управлять отображаемым.

     parser.add_argument("--type", default="toto", choices=["toto","titi"], help = "type (default: %(default)s)") 

    По умолчанию для Optparser в python нет значения по умолчанию.
    Тем не менее, вы можете использовать follwing –

     # show help as default if len(sys.argv) == 1: os.system("python " + sys.argv[0] + " -h") exit() 

    Это запустит тот же скрипт с параметром -h и выйдет.
    Обратите внимание – вам нужно будет импортировать модули os + sys, чтобы использовать этот параметр.

    Interesting Posts

    Конфликт Tkinter / Matplotlib вызывает бесконечный mainloop

    Установка python-ldap в virtualenv на Windows

    Поиск требований, эквивалентных возможностям Mechanize

    Указание ограничения на повторение задач, поставленных в очередь с использованием отложенной библиотеки GAE

    Подключение к удаленной базе данных Postgresql через туннель ssh с использованием python

    Панды: Группируйте по календарю-неделе, затем группируйте стрижки для реального времени

    Питон тензора: доступ к отдельным элементам в тензоре

    Отсутствует файл при установке pylinkgrammar

    «Невозможно найти искатель для ошибки« pip._vendor.distlib »при использовании« pip install virtualenv »

    AttributeError: объект 'int' не имеет атрибута '_sa_instance_state'

    Прослушивание Socket Python

    Почему окно pygame не закрывается должным образом?

    Системное форматирование даты не собирает django locale

    Как получить заполнители переменной длины в вызове Python для SQLite3

    Для функции диапазона типа Python

    Python - лучший язык программирования в мире.