Python Glossary English

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

os.path.expandvars

os.path — абсолютизация

Подставляет значения переменных окружения вида `$VAR`/`${VAR}` в строке пути.

Синтаксис

os.path.expandvars(path)

Неизвестные переменные остаются в строке как есть, без ошибки: '$NOPE/x' не изменится, и опечатка в имени незаметно даст путь со знаком доллара. Не применяйте её к строкам, пришедшим от пользователя или из сети: так можно вытащить значения переменных окружения, например секретов. Для шаблонов надёжнее string.Template.substitute — он поднимает KeyError на отсутствующем имени.

Примеры

import os
print(os.path.expandvars('no vars here'))   # → no vars here
os.environ['PROJECT'] = '/srv/app'
print(os.path.expandvars('$PROJECT/logs'))   # → /srv/app/logs
print(os.path.expandvars('${PROJECT}_backup'))   # → /srv/app_backup
print(os.path.expandvars('$NO_SUCH_VAR/data'))   # → $NO_SUCH_VAR/data (неизвестная переменная остаётся в строке как есть)
print(os.path.expandvars('%PROJECT%/logs'))   # → только Windows: /srv/app/logs; на Unix строка возвращается без изменений

См. также

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