Если у меня есть файл test.py
это находится в некотором каталоге, как я могу найти из test.py
в каком каталоге это находится? os.path.curdir
даст текущий каталог, но не каталог, где файл живет. Если я вызываю test.py
из некоторого каталога foo
, os.curdir
возвратится foo
но не путь test.py
.
спасибо.
ответ - использовать:
__file__
, который возвращает относительный путь.
os.path.abspath(__file__)
можно использовать для получения полного пути.
import os
dirname, filename = os.path.split(os.path.abspath(__file__))
Вот как получить каталог текущего файла:
import os
os.path.abspath(os.path.dirname(__file__))
Ответы до сих пор правильно указали вам на os.path.abspath
, который выполняет именно ту работу, которую вы запрашивали. Однако не забывайте, что os.path.normpath и os.path.realpath
также могут быть очень полезны в такого рода задачах (для нормализации представления и удаления символических ссылок соответственно ) во многих случаях (попадает ли ваш конкретный вариант использования в число этих "многих", конечно, невозможно сказать по той скудной информации, которую мы имеем ;-).
os.path
имеет множество инструментов для работы с путями и получения информации о путях.
В частности, вам нужны:
os.path.abspath