Ordner suchen im Skript

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
joerg
User
Beiträge: 188
Registriert: Samstag 17. August 2002, 17:48
Wohnort: Berlin
Kontaktdaten:

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).
piddon
Gründer
Beiträge: 410
Registriert: Dienstag 30. Juli 2002, 18:03
Wohnort: Oestrich-Winkel
Kontaktdaten:

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.
irc: #python.de @ irc.freenode.net | [url=http://pythonwiki.pocoo.org]python-wiki[/url] | [url=http://www.pythonwiki.de/PythonDeForum/Faq]python-forum FAQ[/url]
Antworten