Die argparse
Dokumentation ist recht gut, lässt jedoch einige nützliche Details aus, die möglicherweise nicht offensichtlich sind. (@Diego Navarro hat bereits einige davon erwähnt, aber ich werde versuchen, seine Antwort leicht zu erweitern.) Die grundlegende Verwendung ist wie folgt:
parser = argparse.ArgumentParser()
parser.add_argument('-f', '--my-foo', default='foobar')
parser.add_argument('-b', '--bar-value', default=3.14)
args = parser.parse_args()
Das Objekt, von dem Sie zurückkehren, parse_args()
ist ein 'Namespace'-Objekt: Ein Objekt, dessen Mitgliedsvariablen nach Ihren Befehlszeilenargumenten benannt sind. Das Namespace
Objekt ist, wie Sie auf Ihre Argumente und die damit verbundenen Werte zugreifen:
args = parser.parse_args()
print args.my_foo
print args.bar_value
(Beachten Sie, dass argparse
beim Benennen der Variablen '-' in Ihren Argumentnamen durch Unterstriche ersetzt wird.)
In vielen Situationen möchten Sie Argumente möglicherweise einfach als Flags verwenden, die keinen Wert annehmen. Sie können diese in argparse wie folgt hinzufügen:
parser.add_argument('--foo', action='store_true')
parser.add_argument('--no-foo', action='store_false')
Mit dem obigen Befehl werden Variablen mit dem Namen 'foo' mit dem Wert True bzw. 'no_foo' mit dem Wert False erstellt:
if (args.foo):
print "foo is true"
if (args.no_foo is False):
print "nofoo is false"
Beachten Sie auch, dass Sie die Option "Erforderlich" verwenden können, wenn Sie ein Argument hinzufügen:
parser.add_argument('-o', '--output', required=True)
Wenn Sie dieses Argument in der Befehlszeile weglassen, werden Sie auf diese Weise darauf hingewiesen argparse
, dass es fehlt, und die Ausführung Ihres Skripts gestoppt.
Beachten Sie schließlich, dass es möglich ist, mithilfe der vars
Funktion eine Diktatstruktur Ihrer Argumente zu erstellen , wenn dies Ihnen das Leben erleichtert.
args = parser.parse_args()
argsdict = vars(args)
print argsdict['my_foo']
print argsdict['bar_value']
Wie Sie sehen können, wird vars
ein Diktat mit Ihren Argumentnamen als Schlüssel und deren Werten als ähm Werte zurückgegeben.
Es gibt viele andere Optionen und Dinge, die Sie tun können, aber dies sollte die wichtigsten, häufigsten Verwendungsszenarien abdecken.
sys.argv