How to evaluate environment variables into a string in Python?

Viewed 48503

I have a string representing a path. Because this application is used on Windows, OSX and Linux, we've defined environment variables to properly map volumes from the different file systems. The result is:

"$C/test/testing"

What I want to do is evaluate the environment variables in the string so that they're replaced by their respective volume names. Is there a specific command I'm missing, or do I have to take os.environ.keys() and manually replace the strings?

2 Answers

Use os.path.expandvars to expand the environment variables in the string, for example:

>>> os.path.expandvars('$C/test/testing')
'/stackoverflow/test/testing'

In Python 3 you can do:

'{VAR}'.format(**os.environ))

for example

>>> 'hello from {PWD}'.format(**os.environ))
hello from /Users/william
Related