Y a-t-il un moyen de faire en sorte que optparse de Python affiche la valeur par défaut d'une option ou d'un drapeau lors de l'affichage de l'aide avec --help?
Réponses
Trop de publicités?Les commentaires à votre question indiquent déjà qu'il existe une autre façon de parser les arguments appelée argparse. Il a été introduit en Python 3.2. Il remplace en fait optparse
mais est utilisé de manière similaire.
argpass
est livré avec différentes classes de formatage et par exemple argparse.ArgumentDefaultsHelpFormatter
affichera également les valeurs par défaut sans que vous ayez à manipuler manuellement la chaîne d'aide.
Les objets ArgumentParser permettent de personnaliser le formatage de l’aide en spécifiant une classe de formatage alternative. Actuellement, il existe quatre classes telles :
class argparse.RawDescriptionHelpFormatter
class argparse.RawTextHelpFormatter
class argparse.ArgumentDefaultsHelpFormatter
class argparse.MetavarTypeHelpFormatter
Un exemple de la documentation python :
>>> parser = argparse.ArgumentParser(
... prog='PROG',
... formatter_class=argparse.ArgumentDefaultsHelpFormatter)
>>> parser.add_argument('--foo', type=int, default=42, help='FOO!')
>>> parser.add_argument('bar', nargs='*', default=[1, 2, 3], help='BAR!')
>>> parser.print_help()
usage: PROG [-h] [--foo FOO] [bar [bar ...]]
positional arguments:
bar BAR! (default: [1, 2, 3])
optional arguments:
-h, --help show this help message and exit
--foo FOO FOO! (default: 42)
Ajoutez argparse.ArgumentDefaultsHelpFormatter à votre analyseur
import argparse
parser = argparse.ArgumentParser(
description='Description de votre application',
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
de la documentation:
ArgumentDefaultsHelpFormatter ajoute automatiquement des informations sur les valeurs par défaut à chacun des messages d'aide des arguments: