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()