« Python : argparse » : différence entre les versions

De Justine's wiki
Aller à la navigation Aller à la recherche
(Page créée avec « = Librairie argparse = Cette libraire est très utilisée pour gérer les arguments de notre programme. Le but va être de créer un objet parser, qui va connaître un ce… »)
 
Aucun résumé des modifications
Ligne 15 : Ligne 15 :
#Ajout d'un argument obligatoire
#Ajout d'un argument obligatoire
parser.add_argument("-s", "--server", type=str, help="choose a server", default="9.9.9.9", required=True)
parser.add_argument("-s", "--server", type=str, help="choose a server", default="9.9.9.9", required=True)
#Ajout d'un argument appellé avec rien du tout
#Ajout d'un argument appellé avec rien du tout (positionnel)
parser.add_argument('domain', type=str, help="ayo le domaine")
parser.add_argument('domain', type=str, help="ayo le domaine")
args = parser.parse_args()
args = parser.parse_args()

Version du 26 novembre 2021 à 17:20

Librairie argparse

Cette libraire est très utilisée pour gérer les arguments de notre programme.

Le but va être de créer un objet parser, qui va connaître un certain nombre d'arguments possibles (leur nom, leur type, leur aide qu'il affichera avec un appel du type --help).

Exemples

Basique <source lang="python"> import argparse

  1. Initialisation

parser = argparse.ArgumentParser(description="Mes arguments sont meilleurs que les tiens")

  1. Ajout d'un argument facultatif, appellé avec -t

parser.add_argument("-t", "--type", type=str, help="choose the dns type for your query", default="a")

  1. Ajout d'un argument obligatoire

parser.add_argument("-s", "--server", type=str, help="choose a server", default="9.9.9.9", required=True)

  1. Ajout d'un argument appellé avec rien du tout (positionnel)

parser.add_argument('domain', type=str, help="ayo le domaine") args = parser.parse_args() </source>

Ici, je pourrais récupérer mes arguments en fonction de leur nom. <source lang="python"> print(args.type, args.domain) </source>

Je peux désormais appeller mon script avec --help ou -h et l'aide sortira sans que j'ai eu à la configurer <source lang="python"> % ./exemple.py --help Sandbox/Useless Ulysses usage: exemple.py [-h] [-t TYPE] -s SERVER domain

Mes arguments sont meilleurs que les tiens

positional arguments:

 domain                ayo le domaine

optional arguments:

 -h, --help            show this help message and exit
 -t TYPE, --type TYPE  choose the dns type for your query
 -s SERVER, --server SERVER
                       choose a server

</source>

Et l'appel du script en oubliant un argument obligatoire provoquera une erreur: <source lang="python">

% ./exemple.py                                                       Sandbox/Useless Ulysses

usage: exemple.py [-h] [-t TYPE] -s SERVER domain exemple.py: error: the following arguments are required: -s/--server, domain </source>