Befehlszeilenargumente in Python

Manav Narula 8 November 2021
  1. Verwenden Sie das Modul sys, um Befehlszeilenargumente in Python zu verarbeiten
  2. Verwenden Sie das Modul getopt, um Befehlszeilenargumente in Python zu verarbeiten
  3. Verwenden Sie das Modul argparse, um Befehlszeilenargumente in Python zu verarbeiten
Befehlszeilenargumente in Python

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 Narula avatar Manav Narula avatar

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