обнаружение полного пути в файл из Python

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

спасибо.

27
задан phoenix 3 July 2018 в 18:17
поделиться

5 ответов

ответ - использовать:

 __file__

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

os.path.abspath(__file__) 

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

21
ответ дан 28 November 2019 в 04:34
поделиться
import os
dirname, filename = os.path.split(os.path.abspath(__file__))
1
ответ дан 28 November 2019 в 04:34
поделиться

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

import os
os.path.abspath(os.path.dirname(__file__))
43
ответ дан 28 November 2019 в 04:34
поделиться

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

5
ответ дан 28 November 2019 в 04:34
поделиться

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

В частности, вам нужны:

os.path.abspath
-1
ответ дан 28 November 2019 в 04:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: