Überprüfen Sie das Argument von Argparse in Python

Ammar Ali 21 Juni 2023
  1. Überprüfen Sie das Argument von argparse in Python
  2. Überprüfen Sie, ob das optionale Argument argparse gesetzt ist
Überprüfen Sie das Argument von Argparse in Python

Dieses Tutorial wird die Verwendung von argparse diskutieren und wir werden prüfen, ob ein Argument in argparse existiert, indem wir eine bedingte Anweisung und den Namen des Arguments in Python verwenden.

Überprüfen Sie das Argument von argparse in Python

Die argparse-Bibliothek von Python wird in der Kommandozeile verwendet, um benutzerfreundliche Schnittstellen zu schreiben. Beispielsweise können wir ein Skript mit dem Skriptnamen ausführen und die zum Ausführen des Skripts erforderlichen Argumente bereitstellen.

Wir können Argumente nach dem Namen der Skriptdatei hinzufügen, und die Bibliothek argparse konvertiert diese Argumente in Objekte, die innerhalb des Skripts verwendet werden können, um die erforderliche Aufgabe auszuführen. Wir können jedem Argument auch Hilfe-, Verwendungs- und Fehlermeldungen anhängen, um dem Benutzer zu helfen.

Wenn ein Benutzer beispielsweise ein ungültiges Argument eingibt, zeigt die Bibliothek argparse einen Fehler und wie der Benutzer das Argument eingeben soll. Lassen Sie uns zum Beispiel ein einfaches Beispiel der Bibliothek argparse besprechen.

Siehe Code unten.

import argparse

My_parser = argparse.ArgumentParser()
My_parser.parse_args()

Ausgang:

PS C:\Users\ammar> python test.py -h
usage: test.py [-h]

optional arguments:
  -h, --help  show this help message and exit

Um das obige Skript auszuführen, müssen wir python test.py -h in die cmd (Eingabeaufforderung) schreiben und sicherstellen, dass Python dem System Pfad oder den Umgebungsvariablen unter Windows hinzugefügt wird. Wir können einen vollständigen Pfad zur Datei python.exe verwenden, wenn sie nicht hinzugefügt wird.

Wir müssen auch sicherstellen, dass das aktuelle Verzeichnis der Eingabeaufforderung auf das Verzeichnis der Python-Datei eingestellt ist; Wenn dies nicht der Fall ist, müssen wir den vollständigen Pfad zur Python-Datei angeben.

Nehmen wir zum Beispiel an, wir müssen Python zum System Pfad hinzufügen, und wir befinden uns auch nicht im aktuellen Verzeichnis der Python-Datei. Wir müssen die erste Zeile in der obigen Ausgabe in die untere Zeile ändern.

& C:/Users/ammar/python.exe "c:/Users/ammar/test.py" -h

Die obige Zeile wird in Windows PowerShell getestet, und für cmd müssen wir das & am Anfang der Zeile entfernen. In der obigen Ausgabe können wir beobachten, dass nur ein Argument für die Hilfe verwendet wird.

Wir können die Funktion add_argument() verwenden, um Argumente im Argumentparser hinzuzufügen. Wir können zwei Arten von Argumenten festlegen: eines ist ein Positionsargument und das andere ein optionales.

Wir müssen den einfachen - oder den doppelten Bindestrich -- vor dem Argument verwenden, um es optional zu machen. Wir können auch Hilfe für ein Argument hinzufügen, indem wir das Argument help verwenden und seinen Wert innerhalb der Funktion add_argument() auf einen String setzen.

Wir können Text vor und nach dem Hilfeabschnitt hinzufügen, indem wir das Beschreibungs- und Epilog-Argument innerhalb der Funktion ArgumentParser() verwenden. Das parse_args() wandelt die in der Eingabeaufforderung übergebenen Argumente in Objekte um und gibt sie zurück, mit denen später Operationen ausgeführt werden können.

Nehmen wir zum Beispiel ein String-Argument von einem Benutzer und zeigen es an. Siehe Code unten.

import argparse
import string

My_parser = argparse.ArgumentParser(
    description="text before help.....", epilog="text after help....."
)
My_parser.add_argument("firstArg", help="You can use string here", type=str)
My_args = My_parser.parse_args()

print(My_args.firstArg)

Ausgang:

PS C:\Users\ammar> python test.py
usage: test.py [-h] firstArg
test.py: error: the following arguments are required: firstArg


PS C:\Users\ammar> python test.py -h
usage: test.py [-h] firstArg

text before help.....

positional arguments:
  firstArg    You can use string here

optional arguments:
  -h, --help  show this help message and exit

text after help.....


PS C:\Users\ammar> python test.py hello
hello

Wir haben die obige Python-Datei dreimal ausgeführt und können das Ergebnis in der Ausgabe sehen. Beim ersten Mal haben wir die Datei ohne Argument ausgeführt, und eine Fehlermeldung besagte, dass ein Argument erforderlich war, das nicht übergeben wurde.

Beim zweiten Mal haben wir das Skript mit dem Argument -h ausgeführt, das für die Hilfe verwendet wird, und der Code zeigt die Verwendung und Hilfe des Skripts an. Wir haben das Skript ein drittes Mal mit einer Zeichenfolge ausgeführt, die an der Eingabeaufforderung angezeigt wird.

Wir können das Argument type der Funktion add_argument() verwenden, um den Datentyp des Arguments festzulegen, z. B. str für String und int für den Integer-Datentyp. Alle übergebenen Argumente werden in der Variablen My_args gespeichert, und wir können diese Variable verwenden, um zu prüfen, ob ein bestimmtes Argument übergeben wird oder nicht.

Überprüfen Sie, ob das optionale Argument argparse gesetzt ist

Wenn bei optionalen Argumenten kein Argument übergeben wird, gibt die Methode parse_args() für dieses spezifische Argument None zurück. Wir können bedingte Anweisungen verwenden, um zu prüfen, ob das Argument None ist oder nicht, und wenn das Argument None ist, bedeutet dies, dass das Argument nicht übergeben wird.

Lassen Sie uns beispielsweise ein optionales Argument hinzufügen und prüfen, ob das Argument übergeben wird oder nicht, und ein entsprechendes Ergebnis anzeigen. Siehe Code unten.

import argparse
import string

My_parser = argparse.ArgumentParser(
    description="text before help.....", epilog="text after help....."
)
My_parser.add_argument("-firstArg", help="You can use string here", type=str)
My_args = My_parser.parse_args()

if My_args.firstArg is not None:
    print("Argument passed")
else:
    print("No Argument passed")

Ausgang:

PS C:\Users\ammar> python test.py
No Argument passed

PS C:\Users\ammar> python test.py -firstArg hello
Argument passed

Wir haben das obige Skript zweimal mit und ohne Argument ausgeführt und einen entsprechenden Text angezeigt. Wir können die Anweisung is not None und is None mit einer bedingten Anweisung verwenden, um festzustellen, ob ein Argument übergeben wird oder nicht.

Beachten Sie, dass wir bei optionalen Argumenten auch ihren Namen verwenden müssen, bevor wir ein Argument übergeben. Stellen Sie sicher, dass das Argument, das wir überprüfen möchten, keinen Standardwert hat, da das Argument im Falle eines Standardwerts niemals None sein wird.

Lassen Sie uns zum Beispiel einen Standardwert im obigen Code hinzufügen, indem wir das Schlüsselwort default innerhalb der Funktion add_argument() verwenden und das obige Verfahren wiederholen. Siehe Code unten.

import argparse
import string

My_parser = argparse.ArgumentParser(
    description="text before help.....", epilog="text after help....."
)
My_parser.add_argument(
    "-firstArg", help="You can use string here", type=str, default="default_value"
)
My_args = My_parser.parse_args()

if My_args.firstArg is not None:
    print("Argument passed")
else:
    print("No Argument passed")

Ausgang:

PS C:\Users\ammar> python test.py
Argument passed

PS C:\Users\ammar> python test.py -firstArg hello
Argument passed

Wir können in der obigen Ausgabe beobachten, dass, wenn wir kein Argument übergeben, der Code aufgrund des Standardwerts immer noch das übergebene Argument anzeigt. Wir können die Funktion add_argument() mehrmals verwenden, um mehrere Argumente hinzuzufügen.

Wenn wir den Benutzer bei der Auswahl der Eingaben einschränken möchten, können wir das Argument choices innerhalb des add_argument() verwenden und seinen Wert auf eine Liste von Werten setzen, die nur als Argumente an das Skript übergeben werden dürfen .

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook