Python Glossary English

все Python 3osфункция

os.path.relpath

os.path — разбор пути

Возвращает путь к path относительно каталога start.

Синтаксис

os.path.relpath(path, start=os.curdir)

Считает путь по строкам и на диск не смотрит, поэтому работает и для несуществующих путей, но не учитывает символические ссылки. По умолчанию start — текущий каталог, то есть результат зависит от того, откуда запущена программа. На Windows для путей на разных дисках поднимается ValueError: относительного пути между C: и D: не бывает.

Примеры

import os
print(os.path.relpath('/a/b/c', '/a/b'))   # → c
print(os.path.relpath('/a/b', '/a/b'))   # → .
print(os.path.relpath('/a', '/a/b'))   # → .. — если цель выше start, путь строится через переходы вверх
print(os.path.relpath('/нет-такого/файл.txt', '/нет-такого'))   # → файл.txt — файлы могут не существовать, relpath работает с текстом пути
print(os.path.relpath('/a/b/c'))   # → путь к /a/b/c от текущего каталога (start по умолчанию — os.curdir), например ../../a/b/c

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности