Специальная переменная __file__ содержит путь к текущему файлу. Исходя из этого, мы можем получить каталог, используя либо pathlib, либо os.path модуль.
import os os.path.dirname(os.path.abspath(__file__))
Если вы имеете в виду текущий рабочий каталог:
import os os.path.abspath(os.getcwd())
Обратите внимание, что перед и после file это два символа подчеркивания, а не только один.
Также обратите внимание, что если вы работаете в интерактивном режиме или загрузили код не из файла (например, базы данных или онлайн-ресурса), __file__ может быть не задан, поскольку нет понятия "текущий файл". Приведенный выше ответ предполагает наиболее распространенный сценарий запуска скрипта python, который находится в файле.
Использование Path from pathlib является рекомендуемым способом начиная с Python 3:
from pathlib import Path print("File Path:", Path(__file__).absolute()) print("Directory Path:", Path().absolute()) # Directory of current working directory, not __file__
Примечание: При использовании Jupyter Notebook, __file__ не возвращает ожидаемое значение, поэтому Path().absolute() должен быть использован.
Ответ 3
В Python 3.x я делаю:
from pathlib import Path
path = Path(__file__).parent.absolute()
Объяснение:
Path(__file__) это путь к текущему файлу.
.parent выдает вам каталог, в котором находится файл.
.absolute() предоставляет вам полный абсолютный путь к нему.
Использование pathlib - это современный способ работы с путями. Если вам это понадобится позже в виде строки по какой-либо причине, просто сделайте str(path).
Ответ 4
Попробуйте это:
import os dir_path = os.path.dirname(os.path.realpath(__file__))