Python Glossary Русский

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