So fügen Sie einem Python -Skript Befehlszeilenargumente hinzu

So fügen Sie einem Python -Skript Befehlszeilenargumente hinzu

Wenn Sie ein Python -Skript oder eine Anwendung entwickelt haben, die in erster Linie in Terminal -Emulatoren oder sogar GUI -Apps ausgeführt werden soll, kann das Hinzufügen von Befehlszeilenargumenten deren Verwendbarkeit, Code -Lesbarkeit, Anwendungsstruktur und allgemeine Benutzerfreundlichkeit der Anwendung für die Endbenutzer verbessern. Diese Befehlszeilenargumente werden auch als "Optionen" oder "Switches" bezeichnet und funktionieren ähnlich wie bei Argumenten, die Sie normalerweise in Bash -Skripten und anderen C / C ++ -Basierten Programmen sehen.

Um Python-Skripten Argumente hinzuzufügen, müssen Sie ein integriertes Modul mit dem Namen "ArgParse" verwenden. Wie der Name schon sagt, analysiert er die Befehlszeilenargumente, die beim Starten eines Python -Skripts oder einer Anwendung verwendet werden. Diese analysierten Argumente werden auch vom Modul „ArgParse“ überprüft, um sicherzustellen, dass sie vom richtigen "Typ" sind. Fehler werden aufgeworfen, wenn Argumente ungültige Werte enthalten.

Die Verwendung des Argparse -Moduls kann am besten anhand von Beispielen verstanden werden. Im Folgenden finden Sie einige Code -Beispiele, mit denen Sie mit dem ArgParse -Modul beginnen können.

Beispiel 1: Generieren Sie Hilfe mit Hilfe und Nachricht

Betrachten Sie die nachstehende Codeprobe:

Argparse importieren
Parser = argParse.ArgumentParser (Beschreibung = 'Ein Testprogramm.'))
args = parser.Parse_args ()

Die erste Aussage importiert das "ArgParse" -Modul. Als nächstes wird eine neue Instanz von „ArgumentParser“ -Objekt erstellt und eine kurze Beschreibung für das Programm wird als Argument geliefert. Das ArgumentParser -Objekt wird benötigt, um die von Python verstandenen Datentypen in Befehlszeilen zu konvertieren. Dies erfolgt durch die Methode „Parse_args“ des ArgumentParser -Objekts, wie in der letzten Aussage gezeigt.

Angenommen, Sie haben das oben angegebene Code -Beispiel in einer Datei mit dem Namen „Test" gespeichert.PY ”Wenn Sie die folgenden Befehle ausführen.

$ ./prüfen.py -h
$ ./prüfen.PY -HELP

Sie sollten eine ähnliche Ausgabe wie folgt erhalten:

Verwendung: Test.py [-h]
Ein Testprogramm.
Optionale Argumente:
-H, -HELP Zeigen Sie diese Hilfe zur Nachricht und zum Ausgang an

Beachte. Hilfsnachrichten für individuelle Argumente werden daher in der Ausgabe nicht angezeigt. Sobald Sie die Logik für die Behandlung von Werten von analysierten Argumenten in Ihrem Programm hinzufügen.

Beispiel 2: Behandeln Sie ein String -Argument

Um Argumente hinzuzufügen, die von Ihrem Python -Skript akzeptabel sind, müssen Sie die Methode "add_argument" verwenden. Schauen Sie sich den folgenden Code an:

Argparse importieren
Parser = argParse.ArgumentParser (Beschreibung = 'Ein Testprogramm.'))
Parser.add_argument ("print_string", help = "druckt das angegebene Argument aus."))
args = parser.Parse_args ()
drucken (args.print_string)

Es wurde eine neue Anweisung hinzugefügt, die die Verwendung der Methode „add_argument“ zeigt. Jedes Argument, das beim Starten des Skripts hinzugefügt wird, wird von "ArgumentParser" als "print_string" -Objekt behandelt.

Beachte. Ein Standardwert von "None" wird auch hinzugefügten Argumenten zugeordnet, sofern nicht überschrieben.

Schauen Sie sich noch einmal die Hilfe zur Hilfe an:

Verwendung: Test.py [-h] [print_string]
Ein Testprogramm.
Positionsargumente:
print_string druckt das angegebene Argument aus.
Optionale Argumente:
-H, -HELP Zeigen Sie diese Hilfe zur Nachricht und zum Ausgang an

In einer der Zeilen in der Ausgabe heißt es „Positionsargumente“. Da kein Schlüsselwort für das Argument definiert ist, wird derzeit das Argument als „Positionsargument“ behandelt, bei dem die Ordnung und Position des angegebenen Arguments direkt auf das Programm auswirkt. Positionsargumente sind ebenfalls obligatorisch, es sei denn, Sie ändern ihr Verhalten manuell.

Um optionale Argumente zu definieren und zu analysieren, können Sie „-“ (Double Dash) verwenden und ihre Standardwerte mithilfe des Arguments „Standard“ ändern und ändern.

Argparse importieren
Parser = argParse.ArgumentParser (Beschreibung = 'Ein Testprogramm.'))
Parser.add_argument ("-print_string", help = "druckt das angegebene Argument aus.", default =" eine zufällige Zeichenfolge."))
args = parser.Parse_args ()
drucken (args.print_string)

Jetzt, wenn Sie "Test" ausführen.Py ”-Skript ohne Argument, Sie sollten eine zufällige Zeichenfolge erhalten.”Als Ausgabe. Sie können optional auch das Schlüsselwort "-print_string" verwenden, um eine beliebige Zeichenfolge Ihrer Wahl zu drucken.

$ ./prüfen.PY -print_string linuxHint.com LinuxHint.com

Beachten Sie, dass Sie ein optionales Argument vornehmen können, indem Sie ein zusätzliches Argument „Erforderlich = True“ verwenden.

Schließlich können Sie auch Kurzversionen des Arguments mit „-“ (Einzelhaben) definieren, um die Ausführlichkeit zu verringern.

Argparse importieren
Parser = argParse.ArgumentParser (Beschreibung = 'Ein Testprogramm.'))
Parser.add_argument ("-p", "-print_string", help = "druckt das angegebene Argument aus.", default =" eine zufällige Zeichenfolge."))
args = parser.Parse_args ()
drucken (args.print_string)

Wenn Sie den folgenden Befehl ausführen, sollten Sie das gleiche Ergebnis wie oben geben:

$ ./prüfen.py -p linuxHint.com

Beispiel 3: Behandeln Sie ein ganzzahliges Argument

Um Argumente zu bewältigen, die ganzzahlige Werte benötigen, müssen Sie das Schlüsselwort "Typ" auf "int" festlegen, um Validierung zu ermöglichen und Fehler zu werfen, falls die Bedingung nicht erfüllt ist.

Argparse importieren
Parser = argParse.ArgumentParser (Beschreibung = 'Ein Testprogramm.'))
Parser.add_argument ("-p", "-print_string", help = "druckt das angegebene Argument aus.", Typ = int)
args = parser.Parse_args ()
drucken (args.print_string)

Versuchen Sie, den folgenden Befehl auszuführen:

$ ./prüfen.py -p linuxHint.com

Sie sollten einen solchen Fehler bekommen:

Verwendung: Test.py [-h] [-p print_string]
prüfen.PY: Fehler: Argument -p/-print_string: Ungültiger Int-Wert: 'LinuxHint.com '

Durch die Lieferung eines Ganzzahlwerts gibt es Ihnen das korrekte Ergebnis:

$ ./prüfen.py -p 1000 1000

Beispiel 4: Behandeln Sie wahre und falsche Umschaltungen

Sie können Argumente ohne Werte übergeben, um sie mithilfe des Arguments „Aktion“ als wahre und falsche Flaggen zu behandeln.

Argparse importieren
Parser = argParse.ArgumentParser (Beschreibung = 'Ein Testprogramm.'))
Parser.add_argument ("-p", "-print_string", help = "druckt das angegebene Argument aus.", action =" store_true ")
args = parser.Parse_args ()
drucken (args.print_string)

Führen Sie den folgenden Befehl aus, um ein einfaches „True“ als Ausgabe zu erhalten:

$ ./prüfen.py -p

Wenn Sie das Skript ohne das Argument "-P" ausführen, wird stattdessen ein "falscher" Wert zugewiesen. Der Wert "store_true" des Schlüsselworts "Aktion" weist der Variablen "print_string" einen "wahren" Wert zu, wenn das Argument "-P" explizit angegeben ist, andernfalls wird der Variablen Falsch zugewiesen.

Beispiel 5: Argumentwerte als Liste behandeln

Wenn Sie mehrere Werte gleichzeitig abrufen und in der Liste speichern möchten, müssen Sie das Schlüsselwort „Nargs“ im folgenden Format angeben:

Argparse importieren
Parser = argParse.ArgumentParser (Beschreibung = 'Ein Testprogramm.'))
Parser.add_argument ("-p", "-print_string", help = "druckt das angegebene Argument aus.", nargs = '*')
args = parser.Parse_args ()
drucken (args.print_string)

Führen Sie den folgenden Befehl aus, um den obigen Code zu testen:

$ ./prüfen.PY -P "A" B "

Sie sollten eine solche Ausgabe erhalten:

['a', 'b']

Abschluss

Das "ArgParse" -Modul ist ziemlich umfassend mit unzähligen Optionen, um das Verhalten von Befehlszeilenanwendungen zu optimieren und benutzergelieferte Werte zu analysieren. Diese Beispiele berühren nur die grundlegende Verwendung des „ArgParse“ -Moduls. Für fortschrittliche und komplexe Anwendungen benötigen Sie möglicherweise unterschiedliche Implementierungen. Besuchen Sie die offizielle Dokumentation, um eine vollständige Erklärung des Moduls zu erhalten.