Verzeichnis?

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
LuScHe
User
Beiträge: 19
Registriert: Samstag 21. Dezember 2002, 19:52
Kontaktdaten:

Hi ho

Wie kriege ich das Verzeichnis herraus in dem sich das Programm befindet, das den befehl ausfürt ??
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

mit getcwd. und mit chdir veränderst du das Verz dann, wenn du willst.

Code: Alles auswählen

import os
print os.getcwd()
joerg
User
Beiträge: 188
Registriert: Samstag 17. August 2002, 17:48
Wohnort: Berlin
Kontaktdaten:

LuScHe hat geschrieben:Hi ho

Wie kriege ich das Verzeichnis herraus in dem sich das Programm befindet, das den befehl ausfürt ??
Das ist nicht ganz trivial, da man das Programm mit relativem oder absolutem Pfad aufrufen kann, und außerdem können noch symbolische Links auftreten. Folgender Code funktioniert zumindest unter Linux bei mir gut:

Code: Alles auswählen

#/usr/bin/env python

def home_path(resolve_links=0):
    import sys, os
    p = sys.argv[0]
    if not os.path.isabs(p):
        p = os.path.normpath(os.path.join(os.getcwd(), p))
    if resolve_links:
        p = os.path.realpath(p)
    return os.path.split(p)[0]

if __name__ == '__main__':
    print "Homepath: %s (resolved: %s)" % (home_path(), home_path(1))

Viel Glück
Jörg
Antworten