@obstkuchen: Du kannst es natürlich halten wie Du willst, aber wenn Du in einem Forum fragst, in dem sich viele erfahrene Entwickler herumtreiben, dann musst Du auch damit leben, dass diese Dich auf
etablierte Konzepte,
Konventionen und
Methodiken hinweisen
Diese musst Du nicht befolgen - aber zum einen sollte man das, es sei denn, man ist ein Genie und kann andere zu einem Paradigmenwechsel überzeugen, zum anderen wirst Du auf Dauer wenig Hilfe bekommen, wenn Du die Ratschläge in den Wind schlägst.
@Problem: Du solltest imho cofis Ratschlag weiterverfolgen. Du kennst doch bestimmt Tools, die derart arbeiten, dass man ihnen ein Kommando mitgibt und sie dieses entsprechend ausführen. Spontan fallen mir da Dinge wie "git", "svn", "pip" usw. ein, oder auch Paketmanagementtools wie z.B. "pacman" von Arch Linux.
Nehmen wir mal "git"... dort kannst Du Dinge tun, wie "git add ..." oder "git commit ..." oder "git push ...". Nach dem Programmnamen kommt direkt ein Befehl.
Genauso könntest Du doch Dein Python-Programm aufbauen! Nehmen wir an, es heißt "licht.py", dann könntest Du folgendes CLI-API bauen:
- "licht an"
- "licht aus"
- "licht runter" (fürs Dimmen)
- "licht rauf" (fürs Dimmen)
Dein Programm müsste also die übergeben Kommandozeilenattribute parsen und je nach Befehl, eine andere Funktion aufrufen. Für das Parsen gibt es schon das eingebaute Modul ``
argparse``. Dort kannst Du Dir mal den Abschnitt zu
choices angucken, denn imho brauchst Du genau das.
Damit hast Du mit vier Zeilen das Kommando geparst und kannst danach mit einfachen Mitteln wie ``if... elif...`` auf die richtige Funktionalität verzweigen. (Fortgeschrittene nutzen dafür Datenstrukturen, wie z.B. ein Dictionary mit dem Befehl als Schlüssel und dem Funktionsnamen als Wert)
Das ist wirklich nicht so schwierig. Du musst nur Deine bisherigen Programme inhatlich in Funktionen verpacken, damit Du sie in den ``if``-Rümpfen aufrufen kannst. Das sollte aber auch einfach machbar sein.