wie kann ein best. Modul den Pfad seiner Datei rausfinden?

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
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Mittwoch 18. Oktober 2006, 08:47

Hoi,

mal eine Frage, bei der ich den Verdacht habe, daß sie hier schon mal erörtert
wurde - aber ich kann es nicht finden und stehe wieder mal auf dem Schlauch,
was ihre Beantwortung anbelangt.

Also, ich möchte gerne den innerhalb eines Moduls "Modul" den Pfad wissen
unter dem "Modul" gespeichert ist. Mein Ansatz erscheint mir irgendwie
seltsam, wisst ihr etwas Besseres?
Pseudocode:

Code: Alles auswählen

import Modul

#den Pfad ermitteln
gesuchterPfad = os.path.split(Modul.__file__)[0]
#den Selbst-Import wieder loeschen
del Modul
Das sieht nicht nur umständlich aus, es hat auch so ein seltsames
"Geschmäckle": Selbst-Import und Löschen dieses Imports.

TIA
Christian
BlackJack

Mittwoch 18. Oktober 2006, 08:59

Warum muss das Modul sich selbst importieren um auf `__file__` zugreifen zu können!? Der Name ist doch in dem Modul enthalten, also auch ohne import einfach da.
Crush
User
Beiträge: 44
Registriert: Montag 1. Mai 2006, 11:32

Mittwoch 18. Oktober 2006, 09:20

Hi CM

Wie BlackJack schon erwähnte, kann man direkt auf __file__ zugreifen. Dabei enthält __file__ jedoch einen relativen Pfad, den man mit "os.path.abspath(__file__)" zu einem absoluten Pfad machen kann (bzw. mit "os.path.split(os.path.abspath(__file__))[0]" den Pfad ohne Dateinamen ermitteln).

Crush
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Mittwoch 18. Oktober 2006, 09:36

Danke.
Sagte ich nicht, daß ich auf dem Schlauch stehe? :oops:

Gruß,
Christian

PS @Crush: Was Du bzgl. os beschreibst ist zwar nicht der eigentliche Teil der Frage, allerdings hat mein Code schon das von mir gewünschte Verhalten.
Antworten