Learning Center
Programmiersprache Python

Kommandozeilenoptionen und Argumentverarbeitung mit argparse in Python

25 Nov. 2025
Hostman Team
Hostman Team

Kommandozeilenoberflächen (CLIs) gehören zu den schnellsten und effektivsten Möglichkeiten, mit Software zu interagieren. Sie ermöglichen es, Befehle direkt auszuführen, was zu schnellerer Verarbeitung und erweiterten Funktionen führt. Entwickler erstellen häufig CLIs mit Python für verschiedene Anwendungen, Tools und Automatisierungsskripte – damit können Nutzer­eingaben dynamisch verarbeitet werden. Genau hier kommt das Python-Modul argparse ins Spiel.

Das Python-Modul argparse vereinfacht den Umgang mit Kommandozeileneingaben und ermöglicht es Entwicklern, interaktive, benutzerfreundliche Tools zu erstellen. Als Teil der Standardbibliothek erlaubt es Programmierern, Eingaben einfach zu definieren, zu verarbeiten und zu validieren, ohne komplexe Logik schreiben zu müssen.

Dieser Artikel behandelt die wichtigsten Konzepte, nützliche Beispiele und fortgeschrittene Funktionen des argparse-Moduls, damit du sofort beginnen kannst, solide Kommandozeilentools zu entwickeln.

So verwendest du Python argparse für Kommandozeilen-Interfaces
Link kopieren

Schritt 1: Modul importieren
Link kopieren

Importiere das Modul in dein Parser-Skript:

import argparse

Damit wird die Verarbeitung von Kommandozeilenargumenten für .py-Dateien aktiviert.

Schritt 2: Ein ArgumentParser-Objekt erstellen
Link kopieren

Die Klasse ArgumentParser ist die grundlegende API-Klasse des argparse-Moduls. Beginne mit dem Erstellen einer Instanz:

parser = argparse.ArgumentParser(description="A Hostman tutorial on Python argparse.")

Hier:

  • description beschreibt, was das Programm macht und wird angezeigt, wenn jemand --help ausführt.

Schritt 3: Eingaben und Optionen hinzufügen
Link kopieren

Definiere die Parameter und Optionen, die dein Programm akzeptiert, mit add_argument():

parser.add_argument('filename', type=str, help="Name of the file to process")

parser.add_argument('--verbose', action='store_true', help="Enable verbose mode")

Hier:

  • filename ist ein Pflichtargument.

  • --verbose ist optional und toggelt den ausführlichen Modus.

Schritt 4: Benutzereingaben parsen
Link kopieren

Verarbeite die Eingaben mit parse_args():

args = parser.parse_args()

Dies speichert die Kommandozeilenargumente als Attribute des args-Objekts zur weiteren Verwendung.

Schritt 5: Verarbeitete Daten abrufen
Link kopieren

Nutze die Werte weiter in deinem Programm:

print(f"File to process: {args.filename}")

if args.verbose:

    print("Verbose mode enabled")

else:

    print("Verbose mode disabled")

Beispiel CLI-Verwendung
Link kopieren

Dateiverarbeitung ohne Verbose-Modus
Link kopieren

python3 file.py example.txt

Dateiverarbeitung mit Verbose-Modus
Link kopieren

python3 file.py example.txt --verbose

Hilfe anzeigen
Link kopieren

python3 file.py --help

Häufige Beispiele für die Verwendung von argparse
Link kopieren

Beispiel 1: Standardwerte verwenden
Link kopieren

Manchmal benötigen optionale Argumente vordefinierte Standardwerte. In diesem Skript wird ein Timeout von 30 Sekunden gesetzt, wenn --timeout nicht angegeben wird.

import argparse

parser = argparse.ArgumentParser(description="Demonstrating default argument values.")

parser.add_argument('--timeout', type=int, default=30, help="Timeout in seconds (default: 30)")

args = parser.parse_args()

print(f"Timeout value: {args.timeout} seconds")

Erklärung

  • Modul importieren

  • ArgumentParser erstellen

  • Optionales Argument --timeout mit type=int und Standardwert

  • Eingaben mit parse_args() verarbeiten

  • Ausgeben: args.timeout

Fall 1: Standardwert

python file.py

Fall 2: Benutzerdefinierter Wert

python file.py --timeout 60

Beispiel 2: Nutzung von choices
Link kopieren

Mit choices lässt sich ein Argument auf bestimmte gültige Werte beschränken.

parser.add_argument('--mode', choices=['basic', 'advanced'], help="Choose the mode of operation")

Fall 1: gültiger Wert

python3 file.py --mode basic

Fall 2: kein Wert

python3 file.py

Fall 3: ungültiger Wert

python3 file.py --mode intermediate

Beispiel 3: Mehrere Werte verarbeiten
Link kopieren

Mit nargs='+' kann ein Argument mehrere Werte akzeptieren:

parser.add_argument('--numbers', nargs='+', type=int, help="List of numbers to process")

Fall 1: mehrere Zahlen

python3 file.py --numbers 10 20 30

Fall 2: eine Zahl

python3 file.py --numbers 5

Fall 3: kein Input

python3 file.py

Fall 4: ungültiger Input

python3 file.py --numbers 10 abc 20

Beispiel 4: Pflicht-Optionen
Link kopieren

Optionale Argumente (--arg) sind normalerweise nicht verpflichtend. Mit required=True kannst du sie verpflichtend machen.

parser.add_argument('--config', required=True, help="Path to the configuration file")

Fall 1: gültige Eingabe

python3 file.py --config settings.json

Fall 2: fehlt

python3 file.py

Erweiterte Funktionen
Link kopieren

Boolean Flags
Link kopieren

parser.add_argument('--debug', action='store_true', help="Enable debugging mode")

Argumentgruppen
Link kopieren

group = parser.add_argument_group('File Operations')

group.add_argument('--input', type=str, help="Input file")

group.add_argument('--output', type=str, help="Output file")

Mutually Exclusive Arguments
Link kopieren

group = parser.add_mutually_exclusive_group()

group.add_argument('--json', action='store_true', help="Output in JSON format")

group.add_argument('--xml', action='store_true', help="Output in XML format")

Fazit
Link kopieren

Das argparse-Modul erleichtert die Erstellung zuverlässiger CLIs zur Verarbeitung von Kommandozeilenargumenten in Python. Von einfachen Eingaben bis zu erweiterten Funktionen wie choices und nargs können Entwickler robuste, benutzerfreundliche und gut strukturierte Tools bauen. Gute Benennungen und klare Hilfetexte verbessern zusätzlich die Wartbarkeit und Nutzerfreundlichkeit deiner Skripte.