So analysieren Sie Argumente in der Befehlszeile in Python

How Parse Arguments Command Line Python



Die Befehlszeilenargumente werden verwendet, um zum Zeitpunkt der Programmausführung Daten im Programm zu übergeben. Diese Funktion ist in den meisten gängigen Programmiersprachen verfügbar. Aber die Verarbeitung von Befehlszeilenargumenten ist für verschiedene Sprachen unterschiedlich. Die Argumentwerte werden mit dem Programmnamen zum Zeitpunkt der Ausführung des Programms angegeben. Die Python-Sprache unterstützt diese Funktion. In diesem Artikel wird gezeigt, wie Befehlszeilenargumente in Python-Skripten analysiert werden.

Analysieren von Befehlszeilenargumenten mit sys Modul

Befehlszeilenargumente werden mit in einer Liste gespeichert sys Modul. sys.argv wird verwendet, um die Werte der Befehlszeilenargumente zu lesen. Die Gesamtzahl der Befehlszeilenargumente kann mit gezählt werden len () Funktion. Die Verwendung dieses Moduls ist im Teil des Artikels beschrieben.







Beispiel 1: Anzahl der Argumente und Argumentwerte lesen

Erstellen Sie eine Datei mit dem folgenden Python-Skript. Hier werden die Befehlszeilenargumentwerte in der Variablen gespeichert, argv wie andere Sprachen. len () -Methode zählt die Gesamtzahl der Argumente, die zum Zeitpunkt der Ausführung des Skripts übergeben wurden. Argumentwerte werden als Array am Ende des Skripts ausgegeben.



# sys-Modul importieren
importieren sys

# Gesamtzahl der Argumente drucken
drucken('Gesamtargumente:', len(sys.argv))
drucken('Die Argumentwerte sind:', P(sys.argv))

Ausgabe:



Das obige Skript wird hier mit vier Befehlszeilenargumenten ausgeführt. Das erste Argument ist der Skriptname und andere sind numerische Werte. Die folgende Ausgabe wird angezeigt, nachdem das Skript ausgeführt wurde.





Beispiel 2: Argumentwerte mit der Schleife lesen



Im vorherigen Beispiel werden Argumentwerte als Array ausgegeben. Erstellen Sie mit dem folgenden Skript eine Datei, um den Typ der Argumentvariablen zu drucken, und geben Sie jeden Argumentwert in jeder Zeile mithilfe der for-Schleife aus.

# sys-Modul importieren
importieren sys

# Geben Sie den Typ der Variablen aus, sys.argv
drucken(Typ(sys.argv))

# Jedes Befehlszeilenargument in jeder Zeile ausgeben
drucken('Die Befehlszeilenargumente sind:')
zumichin sys.argv:
drucken(ich)

Ausgabe:

Das obige Skript wird ausgeführt, indem drei Argumente mit dem Skriptnamen bereitgestellt werden. Die folgende Ausgabe wird angezeigt, nachdem das Skript ausgeführt wurde.

Analysieren von Befehlszeilenargumenten mit dem getopt-Modul

Gekrönt -Modul wird verwendet, um Befehlszeilenargumente mit den Optionen zu analysieren. gekrönt () -Methode dieses Moduls wird zum Lesen der Argumente verwendet. Diese Methode hat drei Argumente. Die ersten beiden Argumente sind obligatorisch und das letzte Argument ist optional. Die Verwendung dieser Argumente ist unten angegeben.

Argumente: Es enthält das Argument aus dem Befehlszeilenargument.

kurze_option: Es kann ein beliebiger Buchstabe sein, der mit dem Argument übergeben wird.

lange_option: Es wird verwendet, um lange Optionen mit zwei Teilen zu definieren. Dies sind der Optionsname und der Optionswert.

Syntax: getopt.getopt(args, kurze_option, [lange_option])

Beispiel 3: Lesen von Argumentwerten mit kurzen getopt-Optionen

gekrönt Modul enthält mehr Funktionen als sys Modul. Das folgende Beispiel zeigt, wie kurze Optionen in . verwendet werden können gekrönt () Methode. argv -Variable speichert die Befehlszeilenargumente, indem der Skriptname weggelassen wird. Als nächstes werden zwei Optionen in der definiert gekrönt () -Methode, die mit dem Argument zur Laufzeit verwendet werden kann. Wenn ein Fehler auftritt, wird eine Fehlermeldung angezeigt.

# Getopt-Modul importieren
importieren gekrönt

# sys-Modul importieren
importieren sys

# Argumentvariable ohne Skriptnamen speichern
argv= sys.argv[1:]

Versuchen:
# Definiere getopt short-Optionen
Optionen,args= gekrönt.gekrönt(argv, 'x: y:')

# drucke die Optionen und das Argument
drucken(Optionen)
drucken(args)

außer gekrönt.GetoptError:

# Drucken Sie die Fehlermeldung, wenn die falsche Option angegeben ist
drucken('Die falsche Option ist angegeben')

# Beende das Skript
sys.Ausfahrt(2)

Ausgabe:

Führen Sie das Skript ohne Argumente aus, Argumente mit korrekten Optionen und Argumente mit falschen Optionen.

Beispiel 4: Lesen von Argumentwerten mit kurzen und langen getopt-Optionen

Dieses Beispiel zeigt, wie sowohl kurze als auch lange Optionen mit den Argumentwerten verwendet werden können. Es fügt zwei Zahlen hinzu, wenn '-zu' oder '-hinzufügen' wird als Option verwendet und subtrahiert zwei Zahlen, wenn ‘ -S' oder ' –unter“ wird zur Laufzeit als Option verwendet.

# Getopt-Modul importieren
importieren gekrönt

# sys-Modul importieren
importieren sys

# Argumentvariable ohne Skriptnamen speichern
argv= sys.argv[1:]

# Ergebnisvariable initialisieren
Ergebnis=0

Versuchen:

# Definiere getopt Short- und Long-Optionen
Optionen,args= gekrönt.gekrönt(sys.argv[1:], 'wie', ['hinzufügen=','sub='])

# Lesen Sie jede Option mit der for-Schleife
zumopt,verärgertinOptionen:
# Berechnen Sie die Summe, wenn die Option -a oder --add . ist
wennoptin ('-zu', '--hinzufügen'):
Ergebnis= int(argv[1])+int(argv[2])

# Berechnen Sie die Sonnentraktion, wenn die Option -s oder --sub . ist
elifoptin ('-S', '--sub'):
Ergebnis= int(argv[1])-int(argv[2])

drucken('Ergebnis = ',Ergebnis)

außer gekrönt.GetoptError:

# Drucken Sie die Fehlermeldung, wenn die falsche Option angegeben ist
drucken('Die falsche Option ist angegeben')

# Beende das Skript
sys.Ausfahrt(2)

Ausgabe:

Führen Sie das Skript ohne Argumente und Optionen aus, Argumente mit Option '-a', Argumente mit Option '-s' und Argumente mit falscher Option.

Analysieren von Befehlszeilenargumenten mit dem argparse-Modul

Das Argparse-Modul enthält viele Optionen zum Lesen von Befehlszeilenargumenten. Standardargumentwerte, das Argument mit dem Datentyp, Positionsargumente, Hilfemeldungen usw. können von diesem Modul bereitgestellt werden.

Beispiel 5: Kommandozeilenargumente mit argparse lesen

Das folgende Beispiel zeigt die Verwendung von argparse Modul zum Lesen von Befehlszeilenargumenten. Hier sind zwei Optionen zum Lesen von Kommandozeilenargumenten definiert. Diese sind „-n“ oder „–name“ und „-e“ oder „–email“. Wenn der Benutzer ein falsches Argument angibt, wird ein Fehler mit einer Verwendungsmeldung angezeigt. Wenn der Benutzer die richtigen Optionen mit den Argumenten angibt, werden die Argumentwerte angezeigt. Wenn der Benutzer das Skript mit der Option „–help“ ausführt, wird die erforderliche Meldung zum Ausführen des Skripts bereitgestellt.

# Argparse-Modul importieren
importierenargparse

# sys-Modul importieren
importieren sys

# Funktion deklarieren, um Befehlszeilenargumente zu definieren
defLeseoptionen(args=sys.argv[1:]):
Parser =argparse.ArgumentParser(Bezeichnung='Die Parsing-Befehlslisten.')
Parser.add_argument('-n', '--Name', Hilfe='Gib deinen Namen ein.')
Parser.add_argument('-Und', '--Email', Hilfe='Geben Sie Ihre E-Mail ein.')
entscheidet sich= Parser.parse_args(args)
Rückkehrentscheidet sich

# Rufen Sie die Funktion auf, um die Argumentwerte zu lesen
Optionen=Leseoptionen(sys.argv[1:])
drucken(Optionen.Name)
drucken(Optionen.Email)

Ausgabe:

Führen Sie das Skript mit der falschen Option, der richtigen Option und der Hilfeoption aus.

Abschluss:

In diesem Tutorial werden verschiedene Möglichkeiten zum Lesen von Befehlszeilenargumenten anhand von drei Python-Modulen erläutert. Ich hoffe, dieses Tutorial wird dem Programmierer helfen, der Daten mit Befehlszeilenargumenten in Python lesen möchte.

Video des Autors ansehen: Hier