Seite 1 von 1

Kommandozeilenparameter mit Schlüsselparameter

Verfasst: Samstag 24. Oktober 2015, 23:28
von kaineanung
Hallo Leute,

ich hätte da mal wieder eine Frage.

Gibt es eine Möglichkeit Kommandozeilenparameter als Schlüsselparameter zu übergeben?

Mein PY-Script heißt im Beispiel 'machwas.py' und dem möchte ich mehrere Mögliche Parameter übergeben können (oder auch nicht).

Also so in etwa:

Code: Alles auswählen

machwas.py name="DerName" url="http://www.dieurl.de"
Somit könnte ich im Code dann, dementsprechend was für eine Art an Parametern übergeben wurde, entsprechend reagieren.

Wenn das so nicht geht, gibt es dann eine ähnliche Möglichkeit?
Viele Programme erwarten als Kommandozeilenparameter ja eine Art von Schlüsselparameter wie in etwa

Code: Alles auswählen

shutdown -r -t: 0
(Windows Rebootbefehl und zwar sofort) oder der Gleichen.

Da muss das Programm ja auch erst ermitteln welche Parameter übergeben wurden (in dem Fall -r und -t) und zu manchen Parametern wird auch noch ein Wert erwartet (zu -t eben die "0")

Geht sowas auch in Python?

Re: Kommandozeilenparameter mit Schlüsselparameter

Verfasst: Samstag 24. Oktober 2015, 23:52
von DasIch
Ja. Die Parameter stehen in sys.argv. Es gibt darüberhinaus Libraries um solche Parameter sinnvoll zu verarbeiten wie z.B. click.

Re: Kommandozeilenparameter mit Schlüsselparameter

Verfasst: Sonntag 25. Oktober 2015, 09:49
von Sirius3
@kaineanung: Python hat in der Standardbibliothek das Modul argparse, das man dafür nutzen kann.

Re: Kommandozeilenparameter mit Schlüsselparameter

Verfasst: Sonntag 25. Oktober 2015, 17:53
von kaineanung
Dieses 'Click' muss aber vorher manuell installiert werden und das PY-Programm läuft dann auf den Systemen nicht bei welchen diese Bibliothek nicht installiert ist?

Ist zwar eine Überlegung wert, aber man kann es dann mit etwas Aufwand selber programmieren mit den 'normalen' Argumenten. Daher werde ich mir das zar nochmals genau anschauen und überlegen ob es sich lohnt das Click zu installieren oder bei dem Standard zu bleiben.

Danke jedenfalls für den Tip!

Re: Kommandozeilenparameter mit Schlüsselparameter

Verfasst: Sonntag 25. Oktober 2015, 19:02
von cofi
Da "click" eine reine Python Bibliothek ist kannst du es auch einfach deinem Programm beilegen und es wird funktionieren.
Das gesagt, man kann mit "argparse" auch recht angenehm Optionen umsetzen.