2009-10-09 9 views
16

Powiel możliwe:
How to get/set logical directory path in pythonCzy istnieje wersja narzędzia os.getcwd(), która nie odsyła do dowiązań symbolicznych?

Mam skrypt Pythona, który biegnę z katalogu dowiązane i wzywam os.getcwd() w nim, spodziewając się dostać dowiązane ścieżkę Zrobiłem to. Zamiast tego daje mi "prawdziwą" ścieżkę, w tym przypadku nie jest to pomocne. Potrzebuję go, aby dać mi wersję z dowiązaniem symbolicznym.

Czy Python ma do tego polecenie?

Odpowiedz

13

Obejście: os.getenv('PWD')

+0

Ah, dzięki. To na pewno działa! –

+4

Należy zauważyć, że zmienna środowiskowa 'PWD' nie jest aktualizowana przez' os.chdir() ', więc może być niezgodna z' os.getcwd() 'nawet wtedy, gdy nie ma w ogóle żadnych dowiązań symbolicznych. –

11

Na ogół nie jest to możliwe. os.getcwd() getcwd połączeń (3), i zgodnie z POSIX.1-2008 (IEEE Std 1003.1-2008):

Nazwa ścieżki zawiera żadnych składników, które mają punkt lub punkt-punkt, albo linki symbolicznych.

os.getenv['PWD'] jest zależny od powłoki i nie będzie działał na przykład z sh z FreeBSD.

Powiązane problemy