Сообщить об ошибке.

Функция realpath() модуля os.path в Python

Получить канонический путь к файлу по символической ссылке

Синтаксис:

import os.path

os.path.realpath(path, *, strict=False)

Параметры:

  • path - путь к символической ссылке на файл.
  • strict=False - отвечает за разрешение пути в неоднозначных ситуациях (доступен с версии Python 3.10).

Возвращаемое значение:

  • канонический путь указанного имени файла.

Описание:

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

Если путь не существует или встречается зацикливание символической ссылки, а аргумент strict установлен в True (доступен с версии Python 3.10), то возникает ошибка OSError. Если аргумент strict имеет значение False, то путь разрешается, насколько это возможно, и любой остаток пути добавляется без проверки, существует ли он.

Примечание. Когда происходят зацикливание символических ссылок, возвращаемый путь будет одним из членов цикла, но не дается никаких гарантий относительно того, какой из этих элементов будет.

Аргумент path может принимать байтовые или текстовые строки. Результатом будет является тот же тип.

Функция os.path.realpath() может принимать объект, представляющий путь к файловой системе, например такой как pathlib.PurePath.

Изменено в Python 3.8: Символические ссылки теперь разрешены в Windows.

Изменено в Python 3.10: Добавлен аргумент strict.

Примеры использования:

>>> import os.path, pathlib
>>> p = pathlib.Path('file.txt')
# создадим файл
>>> p.touch()
# канонический путь
>>> path = os.path.realpath(p)
>>> path
# '/home/docs-python/file.txt'

# проверка символической ссылки
>>> link = os.path.join(os.getcwd(), 'Desktop', 'link')
>>> link
# '/home/docs-python/Desktop/link'

# создадим символическую ссылку
>>> os.symlink(path, link)
# канонический путь по ссылке
>>> os.path.realpath(link)
# '/home/docs-python/file.txt'