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'