Jak uzyskać pełną ścieżkę do katalogu z bieżącym plikiem'?

Chcę uzyskać bieżący plik's ścieżki katalogu. Próbowałem:

>>> os.path.abspath(__file__)
'C:\\python27\\test.py'

Ale jak mogę pobrać ścieżkę do katalogu's?

Na przykład:

'C:\\python27\\'
Rozwiązanie

Jeśli masz na myśli katalog, w którym znajduje się uruchamiany skrypt:

import os
os.path.dirname(os.path.abspath(__file__))

Jeśli masz na myśli bieżący katalog roboczy:

import os
os.getcwd()

Zauważ, że przed i po file są dwa podkreślenia, a nie tylko jedno.

Zauważ również, że jeśli działasz interaktywnie lub załadowałeś kod z czegoś innego niż plik (np. z bazy danych lub zasobów online), __file__ może nie być ustawione, ponieważ nie ma pojęcia "bieżącego pliku". Powyższa odpowiedź zakłada najczęstszy scenariusz uruchamiania skryptu pythona, który znajduje się w pliku.

Komentarze (17)
import os
print os.path.dirname(__file__)
Komentarze (3)

Możesz użyć biblioteki os i os.path w następujący sposób

import os
os.chdir(os.path.dirname(os.getcwd()))

os.path.dirname zwraca górny katalog z bieżącego. Pozwala nam to przejść do wyższego poziomu bez podawania argumentu pliku i bez znajomości bezwzględnej ścieżki.

Komentarze (1)