Arbeiten mit optionalen Argumenten
Optionale Argumente bieten Flexibilität in Kommandozeilen-Schnittstellen. Im Gegensatz zu Positionsargumenten haben optionale Argumente folgende Eigenschaften:
- Sie werden mit Bindestrichen (typischerweise
-
für Kurzformen und --
für Langformen) eingeführt.
- Sie können weggelassen werden (das Programm verwendet dann Standardwerte, falls diese angegeben sind).
- Sie können in beliebiger Reihenfolge angegeben werden.
- Sie sind ideal für Konfigurationsoptionen, die nicht essentiell für das Programm sind.
Lassen Sie uns ein Programm erstellen, das die Verwendung optionaler Argumente demonstriert.
Erstellen eines Begrüßungsprogramms mit optionalen Argumenten
-
Erstellen Sie im WebIDE eine neue Datei namens greeting.py
im Verzeichnis /home/labex/project
.
-
Fügen Sie der Datei den folgenden Code hinzu:
import argparse
## Create an argument parser
parser = argparse.ArgumentParser(description="A customizable greeting program")
## Add optional arguments
parser.add_argument("-n", "--name", default="World", help="The name to greet (default: World)")
parser.add_argument("-g", "--greeting", default="Hello", help="The greeting to use (default: Hello)")
parser.add_argument("-c", "--count", type=int, default=1, help="Number of times to display the greeting (default: 1)")
## Parse the arguments
args = parser.parse_args()
## Display the greeting
for _ in range(args.count):
print(f"{args.greeting}, {args.name}!")
-
Speichern Sie die Datei.
-
Führen Sie das Programm ohne Argumente aus:
python /home/labex/project/greeting.py
- Sie sollten die Standardbegrüßung sehen:
Hello, World!
- Versuchen Sie nun, die Begrüßung mit optionalen Argumenten anzupassen:
python /home/labex/project/greeting.py --name Alice --greeting Hi
- Sie sollten die angepasste Begrüßung sehen:
Hi, Alice!
- Sie können auch die Kurzformen der Argumente verwenden:
python /home/labex/project/greeting.py -n Bob -g Hey -c 3
- Dies sollte die Begrüßung dreimal anzeigen:
Hey, Bob!
Hey, Bob!
Hey, Bob!
Arten von optionalen Argumenten
argparse
unterstützt verschiedene Arten von optionalen Argumenten:
-
Flag-Argumente: Boolesche Flags, die entweder vorhanden oder nicht vorhanden sind.
-
Argumente mit Werten: Optionale Argumente, die Werte annehmen.
Lassen Sie uns unser Begrüßungsprogramm ändern, um ein Flag-Argument hinzuzufügen:
-
Öffnen Sie greeting.py
im WebIDE.
-
Fügen Sie ein Flag-Argument für Großschreibung hinzu:
import argparse
## Create an argument parser
parser = argparse.ArgumentParser(description="A customizable greeting program")
## Add optional arguments
parser.add_argument("-n", "--name", default="World", help="The name to greet (default: World)")
parser.add_argument("-g", "--greeting", default="Hello", help="The greeting to use (default: Hello)")
parser.add_argument("-c", "--count", type=int, default=1, help="Number of times to display the greeting (default: 1)")
parser.add_argument("-u", "--uppercase", action="store_true", help="Display the greeting in uppercase")
## Parse the arguments
args = parser.parse_args()
## Create the greeting message
message = f"{args.greeting}, {args.name}!"
## Convert to uppercase if requested
if args.uppercase:
message = message.upper()
## Display the greeting
for _ in range(args.count):
print(message)
-
Speichern Sie die Datei.
-
Führen Sie das Programm mit dem Großschreibungs-Flag aus:
python /home/labex/project/greeting.py -n Charlie -u
- Sie sollten die Begrüßung in Großschreibung sehen:
HELLO, CHARLIE!
Der Parameter action="store_true"
bedeutet, dass das Flag keinen Wert annimmt - es ist entweder vorhanden (True) oder nicht vorhanden (False).
Optionale Argumente machen Ihre Kommandozeilen-Schnittstellen flexibler und benutzerfreundlicher. Sie ermöglichen es Benutzern, das Verhalten Ihres Programms anzupassen, ohne dass sie jedes Mal alle Informationen angeben müssen.
Im nächsten Schritt werden wir sehen, wie man Positions- und optionale Argumente in einem einzigen Programm kombiniert.