все 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Сообщить о неточности