python in mehren Datein

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
geni

Hallo,
die Frage ist zwar bestimmt sehr einfach, aber ich bin neu beim Python-Prorammieren..

ist es möglich eine python-datei in mehrer kleiner Datein zu zerlegen und die dann einzeln (wahlweise) einzubinden?
ich denke da an so eine Funktion wie "include()" bei PHP..
wenns sowas gibt: wie heißt das bei python und wie geht es.

hoffe jemand kann mir helfen..

Danke.
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Hi.

Versuchs mal mit import :wink: Damit "bindest" du ein Modul (ne andere Datei) ein. Bsp:

Code: Alles auswählen

import math
print math.sin(math.pi)
Tipp: Such mal hier in den allgemeinen Fragen nach Tutorials/Einführungen zu Python, da gibts jede Menge, falls du welche brauchst.
geni

Versuchs mal mit import :wink: Damit "bindest" du ein Modul (ne andere Datei) ein. Bsp:

danke - aber das ist net ganz was ich suche..
sollte eigene datein "einbinden"..
also ich schreib z.B. 5 verschieden python-Datein und lasse dann eine andere Python-Datei entscheiden welche von den 5 datein geladen und ausgeführt werden soll..
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Hi geni,

doch das geht auch mit import:

Code: Alles auswählen

import sys
if sys.platform.startswith("linux"):
    import my_linux_module as my_module
elif sys.platform.startswith("win"):
    import my_windows_module as my_module

ma_module.machwas()

Gruß

Dookie
geni

sorry aber ich versteh das nicht ganz..

mit import kann ich doch nur Module einbinden (wenn ich mich nicht irre)..

aber was ich will ist mehr das ich andere pythondatein ausführen kann:
also ich z.B. ein python-Datei in der steht das er "hallo world" ausgeben soll (hallo.py), in einer anderen steht das er von 1 bis 20 die zahlen ausgeben soll (zahl.py) - und nun will ich in einer 3. python-datei (main.py) entscheiden ob ich die hallo.py oder die zahl.py ausführen will.
so zusagen einen python-Datei als "starter" für andere python-Datein.

hoffe ihr verlieht nicht die gedult mit mir..
Pythonaya
User
Beiträge: 90
Registriert: Sonntag 26. Januar 2003, 11:34
Wohnort: Großbeeren (nahe Berlin)

Hi,
du schreibst z.B. in eine Datei eine Prozedur p1. Diese Datei hat jetzt den Namen dat1.py.
Nun schreibst du dein eigentliches Programm, meinetwegen hauptprogramm.py

Um p1 benutzen zu können, kannst du DEINE Datei dat2.py mit
from dat1 import*
importieren und p1 anwenden...

Meinest du das?

MFG,
Flo
Christopy
User
Beiträge: 131
Registriert: Montag 15. Dezember 2003, 22:39

Hallo geni

wenn ich das richtig verstehe, hast Du 2 Dateien mit ausführbaren Code. Diese willst Du nun problemabhängig mit einer dritten Datei starten. Richtig?
Probier mal die Methode nach Dookie:
Du hast die schon genannten Dateien zahl.py und hallo.py. Nun schreibst Du in die Datei main.py:

Code: Alles auswählen

if bedingung: 
    import zahl
else:
    import hallo
Wenn Du nun main.py aufrufst, wird je nach Bedingung die Zahl oder Hallo ausgeführt.
geni

Christopy hat geschrieben: Wenn Du nun main.py aufrufst, wird je nach Bedingung die Zahl oder Hallo ausgeführt.
DANKE

hatte es schon fast aufgegeben ;)
aber das es dann so einfach ist..

also danke - das war genau daswas ich wollte..

schönen tag noch, Nils.
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Hallo nochmal,

hier mal das ganze pythonlike gecodet:

hallo_welt.py:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

def action():
    print "Hallo Welt!"

if __name__ == "__main__":
    action()
zahl.py:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

def action():
    for i in range(1,21):
        print i

if __name__ == "__main__":
    action()
main.py:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

while 1:
    auswahl = input("""Bitte Waehlen:
    1 -> Hallo Welt
    2 -> Zahlen
    3 -> Ende
    """)
    if auswahl == 1:
        from hallo_welt import action
    elif auswahl == 2:
        from zahl import action
    elif auswahl == 3:
        break
    action()

Gruß

Dookie
Antworten