Befehlszeilenargumente in Python
-
Verwenden Sie das Modul
sys
, um Befehlszeilenargumente in Python zu verarbeiten -
Verwenden Sie das Modul
getopt
, um Befehlszeilenargumente in Python zu verarbeiten -
Verwenden Sie das Modul
argparse
, um Befehlszeilenargumente in Python zu verarbeiten
Befehlszeilenargumente sind die Werte, die beim Ausführen der Datei im Befehlszeilenfenster bereitgestellt werden. Sie sind entgegenkommend, weil es uns ermöglicht, die Werte während der Ausführung des Programms zu übergeben.
In Python können verschiedene Module zum Verarbeiten von Befehlszeilenargumenten verwendet werden, die unten beschrieben werden.
Verwenden Sie das Modul sys
, um Befehlszeilenargumente in Python zu verarbeiten
Mit sys.argv()
werden die in der Kommandozeile übergebenen Argumente in einer Listenstruktur gespeichert. Der Name der Datei wird als erstes Argument betrachtet.
Beispielsweise,
import sys
print("Arguments without the script name ", (len(sys.argv) - 1))
print("Arguments given ")
for i in range(1, len(sys.argv)):
print(sys.argv[i])
Im obigen Beispiel übergeben wir einige Argumente zur Laufzeit und zeigen die Gesamtzahl der Argumente und deren Werte an.
Verwenden Sie das Modul getopt
, um Befehlszeilenargumente in Python zu verarbeiten
Das Modul getopt
verarbeitet auch Kommandozeilenargumente. Es ermöglicht uns, die angegebenen Werte zu validieren. Wir können Werte mit dem Argument zusammen mit OptionsZeichenketten bereitstellen, die das Skript erkennen kann. Dieses Modul arbeitet mit dem sys-Modul für eine bessere Verarbeitung zusammen.
Der Konstruktor getopt()
wird verwendet, um das Objekt zu initialisieren, das die Argumente analysiert. Es gibt getopt.error
zurück, wenn die Option aus der Argumentliste nicht erkannt wird.
Wir verwenden es im folgenden Code.
import getopt
import sys
lst = sys.argv[1:]
options = "abc:"
long_options = ["A_Message", "B_Message", "C_Message"]
try:
arguments, values = getopt.getopt(lst, options, long_options)
for currentArgument, currentValue in arguments:
if currentArgument in ("-a", "--A_Message"):
print("Message A received")
elif currentArgument in ("-b", "--B_Message"):
print("Message B received")
elif currentArgument in ("-c", "--C_Message"):
print("Message C received")
except getopt.error as err:
print("Error")
Verwenden Sie das Modul argparse
, um Befehlszeilenargumente in Python zu verarbeiten
Das Modul argparse ist bei weitem das bequemste Modul, um mit Befehlszeilenargumenten zu arbeiten. Dieses Modul bietet viel Flexibilität, da es Positionsargumente, optionale Argumente verarbeiten und auch deren Typ angeben kann.
Wir können einige Standardwerte setzen, falls ein Argument fehlt, und sogar eine Hilfemeldung anzeigen.
Die Funktion ArgumentParser()
erstellt ein Parser-Objekt. Die Funktion parse.args()
liest die Argumente von der Kommandozeile.
Beispielsweise,
import argparse
parser = argparse.ArgumentParser(description="Which Message?")
parser.add_argument("a")
parser.add_argument("b")
args = parser.parse_args()
print(args.a, args.b)
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn