Kommandozeilenparameter mit Schlüsselparameter

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
kaineanung
User
Beiträge: 145
Registriert: Sonntag 5. April 2015, 20:57

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?
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Ja. Die Parameter stehen in sys.argv. Es gibt darüberhinaus Libraries um solche Parameter sinnvoll zu verarbeiten wie z.B. click.
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@kaineanung: Python hat in der Standardbibliothek das Modul argparse, das man dafür nutzen kann.
kaineanung
User
Beiträge: 145
Registriert: Sonntag 5. April 2015, 20:57

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!
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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.
Antworten