Anderes Python Programm öffnen

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
Anönös
User
Beiträge: 1
Registriert: Mittwoch 18. Mai 2011, 12:56

Hey Leute,

ich habe mehrere einfache Anfänger Programme geschrieben,
mit einfachen Schleifen und Wenn-Funktionen.

Jetzt möchte ich ein Programm schreiben, in dem man all diese Programme aufrufen kann.
Doch ich weiß nicht, was für einen Befehl ich benötige...

Ich hoffe, ihr könnt mir helfen :)

LG, Anönös
.robert
User
Beiträge: 274
Registriert: Mittwoch 25. April 2007, 17:59

Ich weiß, blöde Antwort, aber:

Zum Aufrufen von Programmen ist eine Shell (oder unter Windows: Kommandozeile) ja nahezu wie geschaffen.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Wenn diese Programme in Python geschrieben sind, dann benutze doch einfach `import`, um diese als Module in Dein "Relais"-Programm zu integrieren.

Je nach Bedarf kannst Du diesem dann noch einen "Dispatcher" hinzufügen, mit welchem man diese Miniprogrämmchen (die jetzt ja als aufrufbare Funktionen zur Verfügung stehen) gezielt aufrufen kann.

Das könnte im groben so aussehen:

Code: Alles auswählen

# modul A (A.py)
def foo():
    print "Hallo"

# modul B (B.py)
def bar():
    print "Ciao"

# Relais-Programm
import sys

import A
import B

if __name__ == "__main__":
    dispatch = {"hallo": A.foo, "ciao": B.bar}
    dispatch[sys.argv[1]]()
Aufrufen kann man das nun, indem man einen Parameter beim Aufruf des Scriptes übergibt:

Code: Alles auswählen

./relais.py hallo
-> Hallo
./relais.py ciao
-> Ciao
Über solche Dispatch-Methoden haben wir hier schon vielfach diskutiert. Kommt halt immer auf den Anwendungsfall an. Man kann auch ein interaktives Menü basteln, bei dem man die Funktionen per Nummer / Id aufruft.

Sollte es sich nicht um Pythonprogramme handeln, so kannst Du das `subprocess`-Modul nutzen. Damit kann man beliebige Programme aus Python heraus aufrufen.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten