Seite 1 von 1

Ordner suchen im Skript

Verfasst: Samstag 17. August 2002, 18:05
von joerg
Wenn ich komplexere Programme schreibe, möchte ich automatisch den Ordner des aufgerufenen Hauptskriptes bestimmen, weil dort dann weitere Module usw. liegen. Das soll auch funktionieren, wenn das Skript irgendwo über den Suchpfad erreichbar ist und symbolische Links dazwischen hängen. Bisher mache ich das folgendermaßen, ganz am Anfang des Skriptes :

Code: Alles auswählen

import os, sys
homeDir = os.environ.get('NCDE_HOME')
if not homeDir:
    p = sys.argv[0]
    if not os.path.isabs(p):
        p = os.path.join(os.getcwd(), p)
    while os.path.islink(p):
        t = os.readlink(p)
        if not os.path.isabs(t):
            t = os.path.join(os.path.dirname(p), t)
        p = t
    homeDir = os.path.split(p)[0]
sys.path.append(homeDir)
Zuerst wird eine Umgebungsvariable gesucht, wenn nicht gefunden muß der Aufrufpfad analysiert werden.

Gibt es eine elegantere oder schnellere Methode? Funktioniert das so auch auf anderen Plattformen als Linux (kann ich nicht ausprobieren).

Verfasst: Samstag 17. August 2002, 18:46
von piddon
Ob es eine schnellere Methode gibt, kann ich nicht sagen.

Aber ich kann dir sagen, dass es auch unter Windows funktioniert. Liefert den Pfad, wo das Skript liegt.