выяснение абсолютного пути к файлу из python - PullRequest
24 голосов
/ 19 июля 2010

Если у меня есть файл test.py, который находится в некотором каталоге, как я могу узнать из test.py, в каком каталоге он находится?os.path.curdir выдаст текущий каталог, но не каталог, в котором находится файл.Если я вызову test.py из некоторого каталога foo, os.curdir вернет foo, но не путь test.py.

спасибо.

Ответы [ 5 ]

38 голосов
/ 19 июля 2010

Вот как получить каталог текущего файла:

import os
os.path.abspath(os.path.dirname(__file__))
19 голосов
/ 19 июля 2010

ответ должен использовать:

 __file__

, который возвращает относительный путь.

os.path.abspath(__file__) 

может использоваться для получения полного пути.

5 голосов
/ 19 июля 2010

Ответы до сих пор правильно указали на os.path.abspath, который выполняет именно ту работу, которую вы запрашивали. Однако не забывайте, что os.path.normpath и os.path.realpath также могут быть очень полезны в задачах такого типа (для нормализации представления и удаления символических ссылок соответственно) во многих случаях (будь то ваши конкретные Случай использования попадает в число этих «многих», что невозможно определить по скудной информации, которую мы имеем, конечно; -).

1 голос
/ 19 июля 2010
import os
dirname, filename = os.path.split(os.path.abspath(__file__))
0 голосов
/ 19 июля 2010

os.path имеет множество инструментов для работы с путями и получения информации о путях.

В частности, вы хотите:

os.path.abspath
...