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

War es hilfreich?

Lösung

Der Thread bei Google-Gruppen über hat den folgenden Code-Schnipsel, die den Trick (leicht modifiziert).

zu tun scheint
class 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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top