Python argparse: Wie kann ich Hilfe automatisch auf Fehler angezeigt?
Frage
Zur Zeit, als ich ungültige Optionen eingeben oder Positionsargumente weglassen, argparse Tritte mich zurück auf die Eingabeaufforderung und zeigt die Verwendung für meine Anwendung. Das ist in Ordnung, aber ich würde lieber automatisch die volle Hilfe aus Listing (welche die Optionen erklärt, etc.) als die Benutzer-Typ erfordern
./myscript.py -h
Danke!
Jamie
Lösung
Der Thread bei Google-Gruppen über hat den folgenden Code-Schnipsel, die den Trick (leicht modifiziert).
zu tun scheintclass DefaultHelpParser(argparse.ArgumentParser):
def error(self, message):
sys.stderr.write('error: %s\n' % message)
self.print_help()
sys.exit(2)
Andere Tipps
Hilfe drucken Sie könnten verwenden möchten: print_help
Funktion auf ArgumentParser
Instanz
parser = argparse.ArgumentParser()
(...)
parser.print_help()
Um Hilfemeldung auf Fehler drucken Sie eigene Unterklasse von ArgumentParser
Instanz erstellen müssen, dass Überschreibungen error()
Methode. Zum Beispiel wie folgt aus:
class MyParser(argparse.ArgumentParser):
def error(self, message):
sys.stderr.write('error: %s\n' % message)
self.print_help()
sys.exit(2)
Wenn diese Parser unparseable Argument Zeile begegnet wird es Hilfe drucken.