Getestet mit:Python3
0

Python Argparse erleichtert das Einlesen komplexer Kommandozeilenparameter massiv

Mit zunehmender Komplexitaet von Programmen steigt der Konfigurationsaufwand fuer den Benutzer. Grosse Programme verwenden haeufig Konfigurationsdateien, teilweise mit einer graphischen Schnittstelle. Bei vielen Programmen reichen jedoch durchdachte Kommandozeilenparameter. Da das Einlesen von Parametern fuer vielfaeltige Programme sowohl aufwendig als auch buganfaellig ist, hilft das leistungsstarke Python-Modul Argparse bei dieser Aufgabe.
Dieses Tutorial gibt einen kleinen Einblick in die mannigfaltigen Verwendungsmoeglichkeiten dieses Moduls.

Argparse einrichten
Zum Einlesen der Kommandozeilenparameter muss zuerst eine Instanz von ArgumentParser aus dem Modul argparse erzeugt werden. Dabei wird ein Text zur Beschreibung des Programmes fuer die Anzeige der Hilfe im Terminal uebergeben:

Dann wird der ArgumentParser schrittweise um einzulesende Parameter ergaenzt.

Integer mit Minimum und Maximum
Sehr praktisch ist das Einlesen einer Integer mit Minimal- und Maximalwert, beispielsweise um den Debug-Level auszuwaehlen. Das geht so:

nargs ist die Anzahl der nach -d erwarteten Parameter; das '?' bedeutet, dass ein einziger Parameter gelesen und nicht in einer Liste gespeichert wird. choices ist eine Liste mit allen moeglichen Werten, hier die Reihe [1, 2, 3, 4, 5]. metavar ist ein zusaetzlicher Hinweis fuer die Terminalhilfe und default der fuer debug voreingestellte Wert.

Bool’scher Parameter
Ein weiterer, wichtiger Argumenttyp ist der bool’sche Parameter oder auch Flag. Beispielsweise kann mit Hilfe eines Flags -g entschieden werden, ob das Programm im graphischen Modus oder im Terminal gestartet wird.

action='store_true' sorgt dafuer, dass True fuer gui gespeichert wird, wenn das -g Flag als Parameter uebergeben wird.

Stringparameter
Stringparameter werden haeufig benoetigt, beispielsweise um Pfade an das Programm zu uebergeben. Hier soll der Pfad hinter -o fuer die Ausgabe des Programmes genutzt werden.

Parameter einlesen
Die Parameter werden, nachdem sie fuer Argparse definiert wurden, wie folgt eingelesen:

Die Parameter werden mit ihrem Namen angesprochen:

Lade zum Ausprobieren von argparse das Beispielscript herunter und starte es beispielsweise mit

Gesamtes Script
Klicke auf Ganzes Script, um das ganze Programm anzuzeigen.

Links
Argparse Dokumentation: https://docs.python.org/3/library/argparse.html

Knight of Pi

Johannes Bergs aka Knight of Pi. Diploma in Bioinformatics, some Webdesign and Python coding then. Living in the beautiful city of Vienna.

Kommentar

Time limit is exhausted. Please reload CAPTCHA.