Python und die Kommandozeile

Wie ich schon in Unittests für die Kommandozeile kurz beschrieben habe, ist der ArgumentParser aus der Library “argparse” ein sehr hilfreiches Teil für den Python-Entwickler. Die Klasse analysiert die Kommandozeile und stellt die eingegebenen Parameter als Python-Objekte dar. Dabei wird sowohl eine Überprüfung auf notwendige und erlaubte Argumente durchgeführt, als auch aus den Deklarationen ein Hilfetext generiert, der das übliche Look-And-Feel der Kommandozeile sicherstellt.

Der ArgumentParser aus der Library argparse ist ein mächtiges Werkzeug, mit dem der Python-Entwickler recht einfach die Kommandozeilenschnittstelle bedienen kann. Dies ist oft auch bei GUI-Applikationen von Bedeutung, schließlich müssen auch diese irgendwie gestartet werden. Jedoch arbeitet der hier beschriebene Parser ausschließlich auf der Konsole. Das ist aber keine nennenswerte Einschränkung.

Auch unter Windows werkelt unter der Motorhaube die gute alte Konsole, aus historischen Gründen gern noch „MSDOS-Fenster“ genannt. Wenn der Benutzer also einen Doppelklick auf eine Datei ausgeführt hat, baut der Explorer im Hintergrund die Kommandozeile entsprechend der Vorgaben (Standard: <pgm-name><space><file-name>) zusammen und startet das Programm.

Damit der ArgumentParser weiß, welche Kommandozeilenargumente erlaubt und welche davon unbedingt notwendig sind, muss ihm dies zunächst mitgeteilt werden. Die Initialisierung könnte folgendermaßen aussehen:

from argparse import ArgumentParser
parser = ArgumentParser(prog=' Mein Programm v1.0', description='Hier steht eine lange Programmbeschreibung')

Nun werden noch die Argumente hinzugefügt:

parser.add_argument('filename', help='Dateiname und/oder Pfad')
parser.add_argument('-o', '--output', help='Festlegung der Ausgabedatei')

Am Ende muss dann noch der Parsing-Vorgang gestartet werden:

args = parser.parse_args()

Das Ergebnis kann dann so aussehen:

D:\>python args.py

usage: Mein Programm v1.0 [-h] [-o OUTPUT] filename

Titel: error: the following arguments are required: filename

Alternativ mit der Option „-h“ oder „–help“:

D:\>python args.py --help

usage: Mein Programm v1.0 [-h] [-o OUTPUT] filename

Hier steht eine lange Programmbeschreibung

positional arguments:
filename              Dateiname und/oder Pfad

optional arguments:
-h, --help            show this help message and exit
-o OUTPUT, --output OUTPUT

Festlegung der Ausgabedatei

Damit erhält der Anwender schon mal sehr hilfreiche Hinweise über die Bedienung des Programmes auf der Kommandozeile. Und auch der Administrator, der dem Anwender den Windows-Doppelklick einrichten muss, sieht schnell, welche Parameter er dem Windows-Explorer mitteilen muss.

Und falls es mal nicht um Windows geht: Obiges Programm habe ich unter Linux getestet, dort sieht es genau so aus wie im Screenshot gezeigt. Das Betriebssystem wird bei einem Python-Programmierer zunehmend unwichtiger :-)

Ähnliche Artikel:

Schreibe einen Kommentar

Deine Email-Adresse wird nicht veröffentlicht.

siebzehn − 16 =