Gibt es eine Möglichkeit, Pythons optparse dazu zu bringen, den Standardwert einer Option oder eines Flags zu drucken, wenn die Hilfe mit --help angezeigt wird?
Antworten
Zu viele Anzeigen?Die Kommentare zu Ihrer Frage weisen bereits darauf hin, dass es eine weitere Möglichkeit gibt, Argumente zu analysieren, die argparse . Es wurde in Python 3.2 eingeführt. Es veraltet eigentlich optparse
wird aber in ähnlicher Weise verwendet.
argpass
kommt mit verschiedenen Formatierungsklassen und zum Beispiel argparse.ArgumentDefaultsHelpFormatter
druckt auch die Standardwerte aus, ohne dass Sie die Hilfszeichenfolge manuell manipulieren müssen.
ArgumentParser-Objekte ermöglichen die Anpassung der Hilfeformatierung durch die Angabe einer alternativen Formatierungsklasse. Derzeit gibt es vier solche Klassen:
Klasse argparse.RawDescriptionHelpFormatter
Klasse argparse.RawTextHelpFormatter
Klasse argparse.ArgumentDefaultsHelpFormatter
Klasse argparse.MetavarTypeHelpFormatter
Ein Beispiel aus den Python-Dokumenten:
>>> parser = argparse.ArgumentParser(
... prog='PROG',
... formatter_class=argparse.ArgumentDefaultsHelpFormatter)
>>> parser.add_argument('--foo', type=int, default=42, help='FOO!')
>>> parser.add_argument('bar', nargs='*', default=[1, 2, 3], help='BAR!')
>>> parser.print_help()
usage: PROG [-h] [--foo FOO] [bar [bar ...]]
positional arguments:
bar BAR! (default: [1, 2, 3])
optional arguments:
-h, --help show this help message and exit
--foo FOO FOO! (default: 42)
Hinzufügen argparse.ArgumentDefaultsHelpFormatter zu Ihrem Parser
import argparse
parser = argparse.ArgumentParser(
description='Your application description',
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
aus der Dokumentation:
ArgumentDefaultsHelpFormatter fügt automatisch Informationen über Standardwerte zu den einzelnen Hilfetexten der Argumente hinzu: Blockquote