15

Как получить полный путь к директории текущего файла?

13

Проблема с получением пути к директории текущего файла в Python

Я пытаюсь получить путь к директории текущего исполняемого файла в Python. С помощью следующего кода я успешно получаю полный путь к файлу:

>>> os.path.abspath(__file__)
'C:\\python27\\test.py'

Однако мне нужен только путь к директории, а не к самому файлу. Я хотел бы получить результат в следующем формате:

'C:\\python27\\'

Если у вас есть идеи или решения для этой проблемы, буду очень благодарен!

5 ответ(ов)

1

В Python 3.x вы можете сделать следующее:

from pathlib import Path

path = Path(__file__).parent.absolute()

Объяснение:

  • Path(__file__) возвращает путь к текущему файлу.
  • .parent возвращает каталог, в котором находится этот файл.
  • .absolute() возвращает полный абсолютный путь к этому каталогу.

Использование pathlib — это современный способ работы с путями. Если вам позже потребуется получить путь в виде строки, просто используйте str(path).

0

Попробуйте использовать следующий код:

import os
dir_path = os.path.dirname(os.path.realpath(__file__))

Этот код позволяет получить путь к директории, в которой находится исполняемый файл. Функция os.path.realpath(__file__) возвращает полный путь к текущему файлу, а os.path.dirname() извлекает из этого пути директорию.

0

Чтобы получить директорию текущего файла в Python, вы можете использовать модуль os. Конкретно, метод os.path.dirname(__file__) возвращает путь к директории, в которой находится исполняемый файл. Вот пример кода:

import os
print(os.path.dirname(__file__))

Когда вы запустите этот код, он выведет путь к директории, в которой расположен скрипт. Учтите, что __file__ может не работать в некоторых окружениях, например, при выполнении кода в интерактивной оболочке или в определённых IDE. В таких случаях вы можете использовать другие подходы, например, модуль pathlib:

from pathlib import Path
print(Path(__file__).parent)

Это также вернёт директорию, в которой находится текущий файл.

0

Конечно! Вот перевод вашего ответа в стиле StackOverflow на русском языке:


Полезные свойства путей в Python:

from pathlib import Path

# Возвращает путь к текущему каталогу
mypath = Path().absolute()
print('Абсолютный путь: {}'.format(mypath))

# Если вы хотите перейти к любому другому файлу внутри подкаталогов
filePath = mypath/'data'/'fuel_econ.csv'
print('Путь к файлу: {}'.format(filePath))

# Проверка, существует ли файл в данном каталоге
isfileExist = filePath.exists()
print('Существует ли файл: {}'.format(isfileExist))

# Проверка, является ли путь каталогом или файлом
isadirectory = filePath.is_dir()
print('Является ли каталогом: {}'.format(isadirectory))

# Получение расширения файла
fileExtension = mypath/'data'/'fuel_econ.csv'
print('Расширение файла: {}'.format(filePath.suffix))

ВЫХОД: Абсолютный путь — это путь, где размещён ваш Python файл.

Абсолютный путь: D:\Study\Machine Learning\Jupitor Notebook\JupytorNotebookTest2\Udacity_Scripts\Matplotlib и seaborn Part2

Путь к файлу: D:\Study\Machine Learning\Jupitor Notebook\JupytorNotebookTest2\Udacity_Scripts\Matplotlib и seaborn Part2\data\fuel_econ.csv

Существует ли файл: True

Является ли каталогом: False

Расширение файла: .csv


Этот перевод соответствует формату и стилю ответов на StackOverflow, сохраняя при этом оригинальную информацию.

0

В Python 2 и 3 вы можете использовать следующий код, чтобы получить путь к каталогу, в котором находится текущий файл:

from os import sep
print(__file__.rsplit(sep, 1)[0] + sep)

Этот код выведет что-то вроде:

C:\my_folder\sub_folder\

Этот способ позволяет аккуратно получить путь к директории файла, добавив разделитель в конце.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь