J'utilise argparse de python pour gérer l'analyse des arguments. Je reçois un message d'aide par défaut structuré comme suit:
usage: ProgramName [-h] ...
Description
positional arguments:
...
optional arguments:
-h, --help show this help message and exit
...
Ce que je veux, c'est ajouter une nouvelle section entière à ce message, par exemple:
usage: ProgramName [-h] ...
Description
positional arguments:
...
optional arguments:
-h, --help show this help message and exit
...
additional information:
This will show additional information relevant to the user.
....
Existe-t-il un moyen d'obtenir ce comportement? Une solution prise en charge par les deux python 2.7 et 3.x est préférée.
Edit: je préfère également avoir une solution qui ajoutera la nouvelle section/sections au bas du message d'aide.
Vous pouvez le faire en utilisant epilog . Voici un exemple ci-dessous:
import argparse
import textwrap
parser = argparse.ArgumentParser(
prog='ProgramName',
formatter_class=argparse.RawDescriptionHelpFormatter,
epilog=textwrap.dedent('''\
additional information:
I have indented it
exactly the way
I want it
'''))
parser.add_argument('--foo', nargs='?', help='foo help')
parser.add_argument('bar', nargs='+', help='bar help')
parser.print_help()
Résultat :
usage: ProgramName [-h] [--foo [FOO]] bar [bar ...]
positional arguments:
bar bar help
optional arguments:
-h, --help show this help message and exit
--foo [FOO] foo help
additional information:
I have indented it
exactly the way
I want it
Il y a plusieurs façons dont vous pouvez ajouter une description à votre commande. La méthode recommandée consiste à ajouter une documentation de module en haut de votre fichier de code source comme dans:
""" This is the description, it will be accessible within the variable
__doc__
"""
Puis:
parser = argparse.ArgumentParser(description=__doc__)
Pour ajouter du texte sous la description du paramètre, utilisez epilog, comme illustré dans l'exemple suivant tiré de la documentation:
>>> parser = argparse.ArgumentParser(description='A foo that bars',
epilog="And that's how you'd foo a bar")
>>> parser.print_help()
usage: argparse.py [-h]
A foo that bars
optional arguments: -h, --help show this help message and exit
And that's how you'd foo a bar
Reportez-vous à la documentation (liée ci-dessus) pour plus d'informations.