all Python 3osfunction
os.path.expandvars
os.path — making paths absolute
Expand environment variables of the form `$VAR`/`${VAR}` in a path.
Syntax
os.path.expandvars(path)
Unknown variables stay in the string unchanged, without an error: '$NOPE/x' is left as is, so a typo silently yields a path with a dollar sign. Do not apply it to strings from users or the network: it can leak environment values such as secrets. For templates string.Template.substitute is more reliable — it raises KeyError on a missing name.
Examples
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 строка возвращается без изменений
See also
Open in the full glossarydocs.python.orgReport an inaccuracy