Optionen

Kurze Optionen dürfen Sie zusammenziehen, dass heißt, die drei Optionen -a -b -c dürfen Sie als -abc schreiben. Lange Optionen erlauben zusätzliche Werte nach einem Gleichheitszeichen, etwa target=/dev/sdb1. Kurze Optionen erlauben zusätzliche Werte sowohl mit als auch ohne Leerzeichen, also gleichermaßen als -t/dev/sdb1 und -t /dev/sdb1.

Listing 6 zeigt Ihnen ein Beispiel aus dem Alltag, das das Kommando ls funktional nachempfindet. Es gibt die Namen aller Einträge im aktuellen Verzeichnis aus. Mittels -f oder --files liefert es nur Dateien, mittels -d oder --dirs nur Verzeichnisse.

Listing 6

#!/usr/bin/python
"""Usage:
  ./fileinfo.py
  ./fileinfo.py [--help | -h]
  ./fileinfo.py [--verbose | -v]
  ./fileinfo.py [--files | -f]
  ./fileinfo.py [--dirs | -d]
 Options:
  --help -h     display help information
  --verbose -v  increase the verbosity of output
  --files -f    display files only
  --dirs -d     display directories only
"""
# include docopt module
from docopt import docopt
# import other modules
import os
if __name__ == '__main__':
  arguments = docopt(__doc__)
  # define which information to show
  showFiles = True
  showDirectories = True
  path = "."
  selection = "*"
  verbose = False
  if arguments["--verbose"]:
    print("enabling verbose output ")
    verbose = True
  if arguments["--files"]:
    showDirectories = False
  if arguments["--dirs"]:
    showFiles = False
  # define display path
  displayPath = path
  for root, dirs, files in os.walk(displayPath):
    if showFiles:
      for filename in files:
        print(filename)
    if showDirectories:
      for dirname in dirs:
        print(dirname)

Das Programm unterscheidet bei der Ausgabe mittels der beiden Variablen showFiles und showDirectories, die es in Abhängigkeit von den auf der Kommandozeile angegebenen Optionen auf True oder False setzt. In der For-Schleife wertet es diese beiden Variablen aus und liefert damit entweder nur Dateien oder Verzeichnisse zurück oder beides.

Alles, was nicht in das bisherige Schema der Parameter passt, behandelt Docopt als Unterkommando. Diese Form kommt etwa beim Verwalten von Paketen via Apt zum Einsatz in Form von apt-get install Paket.

Notwendige Parameter

Neben den eckigen und spitzen Klammern haben auch runde Klammern in Docopt eine Bedeutung: Darin stehen notwendige Parameter. Nützlich ist das unter anderem für Schnittstellen, in denen das Programm einen von mehreren Parametern benötigt. Listing 7 zeigt den Docstring für eine minimale Variante des Paketverwalters apt-get. Dabei tauchen hinter der Angabe von <package> drei Punkte auf. Diese geben an, dass der Parameter mehrfach vorkommen darf; im konkreten Beispiel dürfen Sie also mehr als ein Paket angeben.

Listing 7

"""Usage:
  apt-get (update | upgrade | dselect-upgrade | dist-upgrade)
  apt-get (install | remove | purge | source | download) <package>...
  apt-get (check | clean | autoclean | autoremove)
"""

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Check inklusive
    Wer mit Python programmiert, bekommt mit dem Doctest-Modul eine einfache Möglichkeit, die Programmfunktionen anschaulich zu dokumentieren und gleichzeitig zu testen.
  • Funktionen, Module und Pakete in Python
    Gliedern Sie Ihre Python-Programme in Funktionen, Module und Pakete. Python bietet Ihnen ebenfalls einige davon.
  • Entwicklungshelfer
    Nachdem in den ersten Teilen der Python-Einführung die Sprache beschrieben wurde, geht es im letzten Teil um nützliche Hilfen rund um Python.
  • Bash-Konfiguration, die zweite
    In diesem zweiten Teil der Serie über die Konfiguration der Bash wird es noch einmal praktisch: Das Einstellen des Prompts, und die für die Fehlersuche so nützlichen Tracing-Modi werden beschrieben.
  • Shell-Tipps
    Unter Linux werden wie in jedem Betriebssystem immer wieder Dateien und Verzeichnisse gelöscht. Normalerweise treten dabei keine Probleme auf. Es gibt aber einige Besonderheiten, über die sich ein Anwender im Klaren sein sollte. Einige Problemfälle und mögliche Lösungen werden hier kurz vorgestellt.
Kommentare

Infos zur Publikation

LU 02/2018: PAKETE VERWALTEN

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

JQuery-Script läuft nicht mit Linux-Browsern
Stefan Jahn, 16.02.2018 12:49, 2 Antworten
Hallo zusammen, ...folgender goldener Code (ein jQuery-Script als Ergebnis verschiedener Exper...
XSane-Fotokopie druckt nicht mehr
Wimpy *, 30.01.2018 13:29, 0 Antworten
openSuse 42.3 KDE 5.8.7 Seit einem Software-Update druckt XSane keine Fotokopie mehr aus. Fehler...
TOR-Browser stürzt wegen Wikipedia ab
Wimpy *, 27.01.2018 14:57, 0 Antworten
Tor-Browser 7.5 based on Mozilla Firefox 52.8.0 64-Bit. Bei Aufruf von http: oder https://de.wi...
Wifikarte verhindert Bootvorgang
Maik Kühn, 21.01.2018 22:23, 1 Antworten
iwlwifi-7265D -26 failed to load iwlwifi-7265D -25 failed to load iwlwifi-7265D -24 failed to l...
sharklinux
Gerd-Peter Behrendt, 18.01.2018 23:58, 2 Antworten
Hallo zusammen, ich habe sharklinux von der DVD Installiert. 2x, jedesmal nach dem Reboot ist di...