import os.path os.path.realpath(path, *, strict=False)
path
- путь к файлу (строка или объект, реализующий os.PathLike
)strict
- режим обработки ошибок:False
(по умолчанию): частичное разрешение путиTrue
: строгий режим с выбросом исключенийos.path.ALLOW_MISSING
: игнорировать только отсутствующие файлыos.path.realpath
В Python 3.14 Добавлено значение
os.ALLOW_MISSING
для параметраstrict
Функция realpath()
модуля os.path
возвращает канонический путь указанного файла, устраняя все встреченные символические ссылки (если они поддерживаются операционной системой). На Windows также преобразует имена в стиле MS-DOS(8.3), например C:\\PROGRA~1
в C:\\Program Files
.
Поведение по умолчанию (strict=False
):
OSError
при обработкеИзменение поведения через параметры:
strict=True
:
FileNotFoundError
- если путь не существуетOSError
- если путь недоступен по другим причинамstrict=os.path.ALLOW_MISSING
:
FileNotFoundError
strict=True
)Важные примечания:
os.path.realpath
:Базовый случай:
path = "~/./docs/../file.txt" print(os.path.realpath(path)) # /home/user/file.txt (пример для Linux)
Обработка ошибок:
try: path = os.path.realpath("/nonexistent/path", strict=True) except FileNotFoundError: print("Путь не существует!")
Режим ALLOW_MISSING:
path = os.path.realpath("/possibly/missing/path", strict=os.path.ALLOW_MISSING)
Windows особенности:
print(os.path.realpath("C:\\PROGRA~1")) # C:\Program Files print(os.path.realpath("C:\\Documents and Settings\\")) # C:\Users (если это junction)
Python 3.6 Добавлена поддержка path-like объектов
Python 3.8 Добавлено разрешение символических ссылок и junction points на Windows
Python 3.10 Добавлен параметр
strict
Python 3.14 Добавлено значение
os.ALLOW_MISSING
для параметраstrict
. Если оно используется, будут повторно возникать ошибки, отличные отFileNotFoundError
. Результирующий путь может отсутствовать, но в нём не будет символических ссылок.
os.path.abspath()
os.path.exists()