Wenn das Modul optparse
verwendet wird, dann kann ich alle Standardwerte für alle Befehlszeilenargumente wie diese:Python: Wie alle Standardwerte erhalten, von argparse
import optparse
if __name__ == '__main__':
parser = optparse.OptionParser(usage='pokus --help')
parser.add_option("-d", "--debug", action='store_true', dest="debug",
default=False, help='Enabling debugging.')
options, args = parser.parse_args()
print(parser.defaults)
Da optparse
ist veraltet es klug ist, neu zu schreiben Ihr Code argparse
Modul zu verwenden. Allerdings kann ich keine Möglichkeit finden, wie alle Standardwerte aller Befehlszeilenargumente Parser-Objekt hinzugefügt erhalten:
import argparse
if __name__ == '__main__':
parser = argparse.ArgumentParser(usage='pokus --help')
parser.add_argument("-d", "--debug", action='store_true', dest='debug',
default=False, help='Enabling debugging.')
args = parser.parse_args()
# <---- How to get default values for all arguments here?
# Not: vars(args)
Ich möchte alle Standardwerte erhalten, wenn ich Programm laufen mit (./app.py -d
) oder ohne Befehl Zeilenargument (./app.py
).
Die Standardwerte eingestellt sind, auf dem ' args' Objekt, wenn Schalter weggelassen werden. Müssen Sie für etwas anderes Zugang zu diesen haben? –
In Ihrem Beispiel wird 'args.debug' auf' False' gesetzt, wenn Sie das Programm nicht mit '-d' ausführen. Was ist Ihr Anwendungsfall, wenn Sie wissen müssen, dass der Standardwert 'False' ist, wenn Sie mit' -d' arbeiten? –
Haben Sie überlegt, ['docopt'] (http://docopt.org/) zu verwenden? – pylang