2010-06-01 14 views
11

Używam środowiska Mac OS X i jestem przyzwyczajony do używania ~/w celu zapewnienia dostępu do katalogu bieżącego użytkownika.Uzyskiwanie dostępu do ścieżki względnej w języku Python

Na przykład w moim skrypt Pythona Ja tylko próbuje użyć

os.chdir("/Users/aaron/Desktop/testdir/") 

Ale chcieliby skorzystać

os.chdir("~/Desktop/testdir/") 

ja dostaję Nie ma takiego pliku lub katalogu błąd podczas próby aby to uruchomić. Jakieś pomysły?

Odpowiedz

15

Musisz użyć os.path.expanduser(path)

os.chdir("~/Desktop/testdir/") poszukuje katalogu o nazwie „~” w bieżącym katalogu roboczym.

Należy również zwrócić uwagę na dokumentację tej funkcji - w szczególności, że potrzebna jest odpowiednio zmienna środowiskowa $HOME, aby zapewnić rozszerzenie. Przez większość czasu nie będzie to problemem, ale jeśli ekspansja nie nastąpi, jest to prawdopodobny powód.

+0

Nie wiedziałem o tym! +1 –

+1

Bardzo fajnie, jak właściwie to wykorzystać? Czy "ścieżka" ma być "/ Desktop/testdir"? I jak faktycznie przejść do tego katalogu. Dzięki wielkie. – Aaron

+0

Po prostu zagnieżdż go w istniejącym wywołaniu chdir: os.chdir (os.path.expanduser ("~/...")) –

2

Od http://docs.python.org/library/os.path.html

os.path.expanduser(path) 

poszerzy ~ bycia katalog domowy użytkownika, jeśli jest zdefiniowana.

+0

Próbowałem os.path.expanduser ("/ Desktop/testdir") i nie mówi mi żadnego takiego pliku lub katalogu: '/ Desktop/test/"Czy wiesz, co robię źle? Ostatecznie chciałbym, aby chdir do ~/Desktop/testdir – Aaron

+0

os.path.expanduser ("~/Desktop/testdir") jest tym, czego potrzebujesz, jak wspomniał Dan Head, polega to na ustawianiu $ HOME. – Tyler

Powiązane problemy