344 votes

Aide s’affiche avec python argparse lorsque le script est appelé sans argument

Cela pourrait être un simple. Supposons que j’ai un programme qui utilise argparse pour traiter des arguments de ligne de commande/options. Le texte suivant affichera le message « aide » :

ou :

Mais, si je lance le script sans aucun argument que ce soit, il ne fait rien. Ce que je veux qu’il fasse est d’afficher le message d’utilisation lorsqu’il est appelé sans argument. Comment est-ce qui est fait ?

396voto

unutbu Points 222216

Cette réponse vient de Steven Bethard sur Google groups. Je vais reposter ici pour le rendre plus facile pour les personnes sans compte Google pour accéder à.

Vous pouvez remplacer le comportement par défaut de l' error méthode:

import argparse
import sys

class MyParser(argparse.ArgumentParser):
    def error(self, message):
        sys.stderr.write('error: %s\n' % message)
        self.print_help()
        sys.exit(2)

parser=MyParser()
parser.add_argument('foo', nargs='+')
args=parser.parse_args()

Notez que la solution ci-dessus va imprimer le message d'aide chaque fois que l' error méthode est déclenchée. Par exemple, test.py --blah imprime le message d'aide trop si --blah n'est pas une option valable.

Si vous souhaitez imprimer à l'aide de message uniquement si aucun argument n'est fourni sur la ligne de commande, c'est peut-être encore le moyen le plus facile:

import argparse
import sys

parser=argparse.ArgumentParser()
parser.add_argument('foo', nargs='+')
if len(sys.argv)==1:
    parser.print_help()
    sys.exit(1)
args=parser.parse_args()

-17voto

mossplix Points 1495

vous pouvez utiliser optparse

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X