AHS
AHS

Reputation: 784

How to read Windows environment variable value?

I tried this:

os.environ['MyVar']

But it did not work! Is there any way suitable for all operating systems?

Upvotes: 41

Views: 93679

Answers (3)

Niek de Klein
Niek de Klein

Reputation: 8824

Try using the following:

os.getenv('MyVar')

From the documentation:

os.getenv(varname[, value])

Return the value of the environment variable varname if it exists, or value if it doesn’t. value defaults to None.

Availability: most flavors of Unix, Windows

So after testing it:

>>> import os
>>> os.environ['MyVar'] = 'Hello World!'       # set the environment variable 'MyVar' to contain 'Hello World!'
>>> print os.getenv('MyVar')
Hello World!
>>> print os.getenv('not_existing_variable')
None
>>> print os.getenv('not_existing_variable', 'that variable does not exist')
that variable does not exist
>>> print os.environ['MyVar']
Hello World!
>>> print os.environ['not_existing_variable']
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "/usr/lib/python2.4/UserDict.py", line 17, in __getitem__
    def __getitem__(self, key): return self.data[key]
KeyError: 'not_existing_variable    

Your method would work too if the environmental variable exists. The difference with using os.getenv is that it returns None (or the given value), while os.environ['MyValue'] gives a KeyError exception when the variable does not exist.

Upvotes: 65

Jim Smith
Jim Smith

Reputation: 457

You might have to restart windows to be able to read the environment variable that you set through the control panel.

Upvotes: 27

Siva Arunachalam
Siva Arunachalam

Reputation: 7740

os.getenv('PATH')

You can test it with the above line of code. It will list all the paths which are set.

Upvotes: 6

Related Questions