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\\'
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.
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.