Python Glossary English

Python 3.5+osфункция

os.path.commonpath

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

Возвращает самый длинный общий подпуть списка путей — по компонентам (в отличие от commonprefix).

Синтаксис

os.path.commonpath(paths)

Подходит для проверки «путь лежит внутри каталога»: commonpath([base, target]) == base, если оба пути предварительно прогнаны через realpath. Абсолютные и относительные пути смешивать нельзя, как и передавать пустой список, — оба случая поднимают ValueError. На Windows пути на разных дисках тоже дают ValueError.

Примеры

import os
print(os.path.commonpath(['/usr/a', '/usr/b']).endswith('usr'))   # → True
print(os.path.commonpath(['a/b/c', 'a/b/d']) == os.path.join('a', 'b'))   # → True
files = ['/var/log/app/a.log', '/var/log/app/b.log', '/var/log/db/c.log']
print(os.path.commonpath(files).endswith(os.path.join('var', 'log')))   # → True
print(os.path.commonprefix(['/usr/lib', '/usr/local']))   # → /usr/l — посимвольно; с 3.15 commonprefix даёт DeprecationWarning
print(os.path.commonpath(['/usr', 'usr']))   # → ValueError

См. также

Частые ошибки

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