Print Environment Variables in Python

Environment variables are computer values that affect various aspects of a program and the entire computer system.

Print All Environment Variables

All environment variables (both system and user variables) can be assessed using the os.environ attribute.

The attribute returns a dictionary of all environment variables with keys as the variable names and values as environment values. The resulting dictionary supports all the operations of the native Python dictionary.

import os

print(os.environ)

Output on my Debian Linux (truncated):

environ({'USER': 'kiprono', 'LC_TIME': 'en_US.UTF-8', 'XDG_SESSION_TYPE': 'wayland', 'SHLVL': '1', 'HOME': '/home/kiprono', …, 'PYTHONIOENCODING': 'utf-8'})

Output on my Windows (truncated):

environ({'ALLUSERSPROFILE': 'C:\\ProgramData', 'APPDATA': 'C:\\Users\\kipro\\AppData\\Roaming', 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files', …, 'PYTHONIOENCODING': 'utf-8'})

You can also loop through the os.environ items and print the key-value pays as follows:

import os

for key, value in os.environ.items():
    print(key,"--->",value)

Output on my Debian Linux (truncated):

USER ---> kiprono
LC_TIME ---> en_US.UTF-8
XDG_SESSION_TYPE ---> wayland
SHLVL ---> 1
HOME ---> /home/kiprono
DESKTOP_SESSION ---> gnome
…
SSL_CERT_FILE ---> /opt/sublime_text/Lib/python3/certifi/cacert.pem
PYTHONIOENCODING ---> utf-8

Access a Given Environment Variables

As said earlier, os.environ output supports all operations of a Python dictionary. For example,

# Accessing Environment Variables using the keys
path_variable = os.environ["PATH"]
print(path_variable)

home_variable = os.environ["HOME"]
print(home_variable)

home_variable = os.environ["LOGNAME"]
print(home_variable)

Output:

/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin
/home/kiprono
kiprono

If a key (environment variable) is not present, attempting to access it using the above method will raise a KeyError. For example,

var1 = os.environ["LOG_NAME11"]

print(var1)

Output:

KeyError: 'LOG_NAME11'

To avoid that, use <dict>.get(<key>). This method returns None if the key is not available. For example,

var1 = os.environ.get("LOG_NAME11")

print(var1)

Output:
None

You can also use the os.getenv(<key>) function.

# Available variable.
# PWD is the Present Working Directory
var1 = os.getenv("PWD")
print(var1)

# Variable that doesn't exist. Returns None
var2 = os.getenv("PWD12")
print(var2)

Output:

/home/kiprono/Desktop/Print Environment Variables in Python
None