Forum Programmation.python [Résolu] Utilisation de argparse dans le cas où on a différents arguments selon la valeur du premier

Posté par  . Licence CC By‑SA.
Étiquettes :
2
15
jan.
2023

Je voudrais utiliser argparse dans un cas où on a différents arguments selon la valeur du premier.

Soit par exemple un programme python appelé en ligne de commande qui admet les arguments suivants :

    <arg1> 'op1' ou 'op2' ou 'op3'     # argument obligatoire
    <arg2> : une chaîne de caractères   # argument obligatoire
    puis

    si arg1 == op1 alors pas d'autres arguments

    si arg1 == op2 alors l'argument supplémentaire suivant :
    <arg3> : une chaîne de caractères   # argument obligatoire

    si arg1 == op3 alors les arguments supplémentaires suivants :
    <arg3> : 'red' ou 'green' ou 'blue'  # argument optionnel
    <arg4> : '--simu'   # argument optionnel    
  • # précisions

    Posté par  . Évalué à 2.

    J'ai cru voir une piste dans l'option parents mais soit ça ne sert pas à ça soit je n'ai pas su m'en servir.

    Je précise que ce n'est pas un TP : j'ai (largement) passé l'âge. En fait, j'ai actuellement plusieurs programmes python différents (un pour chacune des opérations) et j'aurais aimé les fusionner. Un peu comme

    borg create args list
    borg check une autre args list
    borg update une autre args list
    etc…

  • # la solution est en utilisant les subparsers

    Posté par  . Évalué à 4.

    ArgumentParser.add_subparsers

    Il ne me reste plus qu'à le mettre en œuvre mais comme c'est clairement fait pour cet usage selon la doc officielle, je devrais y arriver :-)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.