übergabe von Parameter Python

Gast #6756044
Lesenswert?
• ▲
▼
Hi, ich möchte in meinem Programm gerne mit Befehlen arbeiten. Also das 
man Parameter mitgeben kann und dann ein Bestimmter teil des Programmes 
ausgeführt wird. Hat hier jemand eine Idee? Folgend findet Ihr ein 
Beispiel um es evtl. besser zu verstehen was ich möchte.

Danke im voraus
Gruß Leon

./mein_script hallo
./mein_script tschüss

Wenn hallo mitgegeben wird: print("hallo")
wenn tschüss mitgegeben wird: print("tschüss")
#6758021
Lesenswert?
• ▲
▼
Leon schrieb:
> Hi, ich möchte in meinem Programm gerne mit Befehlen arbeiten. Also das
> man Parameter mitgeben kann und dann ein Bestimmter teil des Programmes
> ausgeführt wird. Hat hier jemand eine Idee?

Für so etwas habe ich eine Standardlösung, die aus einem "Hauptprogramm" 
und dynamisch ladbaren Modulen in einem definierten Unterverzeichnis 
besteht.
1
for modulefile in os.listdir(MODULES_DIR):
2
    modulename, _ = os.path.splitext(modulefile)
3
    if modulename != '__pycache__':
4
        try:
5
            mod = import_module(modulename)
6
            mod.register(subparser, modulename)
7
        except:
8
            sys.stderr.write('while loading module "%s":\n'%(modulename))
9
            traceback.print_exc()
10
            sys.exit(-4)

HTH ;-)
Gast #6758227
Lesenswert?
• ▲
▼
Vielen Dank für die vielen und schellen Antworten.
Habe es mit dem sys.argv gemacht. Dort habe ich dann den 2 Wert 
ausgelesen und in einer If-Verzweigung verglichen.
Nochmal vielen dank für die Hilfe.
Gruß Leon
#6767405
Lesenswert?
• ▲
▼
moeb schrieb:
> Man sollte sich angewöhnen, bei Kommandozeilenparameter immer argparse
> zu verwenden. Siehe auch Posts von Thomas W. und Daniel A.

argparse hat den Vorteil, dass man Kommandozeilenargumente "benennen" 
kann. Man muss dann nicht alle Argumente an die Kommandozeile anfügen 
und die Reihenfolge spielt keine Rolle. Das hat etwas Ähnlichkeit mit 
den Keyword-Args (kwargs) bei Funktionen/Methoden.
Wenn man aber nur ein Argument übergeben will, ist das mit Kanonen auf 
Spatzen geschossen.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.