Python | os.environ object

OS module in Python provides functions for interacting with the operating system. OS comes under Python’s standard utility modules. This module provides a portable way of using operating system dependent functionality.

os.environ in Python is a mapping object that represents the user’s environmental variables. It returns a dictionary having user’s environmental variable as key and their values as value.

os.environ behaves like a python dictionary, so all the common dictionary operations like get and set can be performed. We can also modify os.environ but any changes will be effective only for the current process where it was assigned and it will not change the value permanently.



Syntax: os.environ

Parameter: It is a non-callable object. Hence, no parameter is required

Return Type: This returns a dictionary representing the user’s environmental variables

Code #1: Use of os.environ to get access of environment variables

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python program to explain os.environ object 
  
# importing os module 
import os
import pprint
  
# Get the list of user's
# environment variables
env_var = os.environ
  
# Print the list of user's
# environment variables
print("User's Environment variable:")
pprint.pprint(dict(env_var), width = 1)

chevron_right


Output:

{'CLUTTER_IM_MODULE': 'xim',
 'COLORTERM': 'truecolor',
 'DBUS_SESSION_BUS_ADDRESS': 'unix:path=/run/user/1000/bus',
 'DESKTOP_SESSION': 'ubuntu',
 'DISPLAY': ':0',
 'GDMSESSION': 'ubuntu',
 'GJS_DEBUG_OUTPUT': 'stderr',
 'GJS_DEBUG_TOPICS': 'JS '
                     'ERROR;JS '
                     'LOG',
 'GNOME_DESKTOP_SESSION_ID': 'this-is-deprecated',
 'GNOME_SHELL_SESSION_MODE': 'ubuntu',
 'GTK_IM_MODULE': 'ibus',
 'HOME': '/home/ihritik',
 'IM_CONFIG_PHASE': '2',
 'JAVA_HOME': '/opt/jdk-10.0.1',
 'JOURNAL_STREAM': '9:28586',
 'JRE_HOME': '/opt/jdk-10.0.1/jre',
 'LANG': 'en_IN',
 'LANGUAGE': 'en_IN:en',
 'LESSCLOSE': '/usr/bin/lesspipe '
              '%s '
              '%s',
 'LESSOPEN': '| '
             '/usr/bin/lesspipe '
             '%s',
 'LOGNAME': 'ihritik',
 'PATH': '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:
/usr/local/games:/snap/bin:/usr/local/java/jdk-10.0.1/bin:
/usr/local/java/jdk-10.0.1/jre/bin:/opt/jdk-10.0.1/bin:/opt/jdk-10.0.1/jre/bin',
 'PWD': '/home/ihritik',
 'QT4_IM_MODULE': 'xim',
 'QT_IM_MODULE': 'ibus',
 'SESSION_MANAGER': 'local/hritik:@/tmp/.ICE-unix/1127, unix/hritik:/tmp/.ICE-unix/1127',
 'SHELL': '/bin/bash',
 'SHLVL': '2',
 'SSH_AUTH_SOCK': '/run/user/1000/keyring/ssh',
 'TERM': 'xterm-256color',
 'TEXTDOMAIN': 'im-config',
 'TEXTDOMAINDIR': '/usr/share/locale/',
 'USER': 'ihritik',
 'USERNAME': 'ihritik',
 'VTE_VERSION': '4804',
 'WAYLAND_DISPLAY': 'wayland-0',
 'XDG_CONFIG_DIRS': '/etc/xdg/xdg-ubuntu:/etc/xdg',
 'XDG_CURRENT_DESKTOP': 'ubuntu:GNOME',
 'XDG_MENU_PREFIX': 'gnome-',
 'XDG_RUNTIME_DIR': '/run/user/1000',
 'XDG_SEAT': 'seat0',
 'XDG_SESSION_DESKTOP': 'ubuntu',
 'XDG_SESSION_ID': '2',
 'XDG_SESSION_TYPE': 'wayland',
 'XDG_VTNR': '2',
 'XMODIFIERS': '@im=ibus',
 '_': '/usr/bin/python3'}

Code #2: Accessing a particular environment variable

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python program to explain os.environ object 
  
# importing os module 
import os
  
# Get the value of
# 'HOME' environment variable
home = os.environ['HOME']
  
# Print the value of
# 'HOME' environment variable
print("HOME:", home)
  
# Get the value of
# 'JAVA_HOME' environment variable
# using get operation of dictionary
java_home = os.environ.get('JAVA_HOME')
  
# Print the value of
# 'JAVA_HOME' environment variable
print("JAVA_HOME:", java_home)

chevron_right


Output:

HOME: /home/ihritik
JAVA_HOME: /opt/jdk-10.0.1

Code #3: Modifying a environment variable

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python program to explain os.environ object 
  
# importing os module 
import os
  
  
# Print the value of
# 'JAVA_HOME'  environment variable 
print("JAVA_HOME:", os.environ['JAVA_HOME')
  
# Modify the value of
# 'JAVA_HOME'  environment variable 
os.environ['JAVA_HOME'] = '/home / ihritik / jdk-10.0.1'
  
# Print the modified value of
# 'JAVA_HOME' environment variable
print("Modified JAVA_HOME:", os.environ['JAVA_HOME'])

chevron_right


Output:

JAVA_HOME: /opt/jdk-10.0.1
Modified JAVA_HOME: /home/ihritik/jdk-10.0.1

Code #4: Adding a new environment variable


filter_none

edit
close

play_arrow

link
brightness_4
code

# Python program to explain os.environ object 
  
# importing os module 
import os
  
# Add a new environment variable 
os.environ['GeeksForGeeks'] = 'www.geeksforgeeks.org'
  
# Get the value of
# Added environment variable 
print("GeeksForGeeks:", os.environ['GeeksForGeeks'])

chevron_right


Output:

GeeksForGeeks: www.geeksforgeeks.org

Code #5: Accessing a environment variable which does not exists

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python program to explain os.environ object 
  
# importing os module 
import os
  
# Print the value of
# 'MY_HOME' environment variable 
print("MY_HOME:", os.environ['MY_HOME']
  
  
# If the key does not exists
# it will produce an error

chevron_right


Output:

Traceback (most recent call last):
  File "osenviron.py", line 8, in 
    print("MY_HOME:", os.environ['MY_HOME'])
  File "/usr/lib/python3.6/os.py", line 669, in __getitem__
    raise KeyError(key) from None
KeyError: 'MY_HOME'

Code #6: Handling error while Accessing a environment variable which does not exists

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python program to explain os.environ object 
  
  
# importing os module 
import os
  
# Method 1
# Print the value of
# 'MY_HOME' environment variable 
print("MY_HOME:", os.environ.get('MY_HOME', "Environment variable does not exist"))
  
  
# Method 2
try:
    print("MY_HOME:", os.environ['MY_HOME'])
except KeyError: 
    print("Environment variable does not exist")

chevron_right


Output:

MY_HOME: Environment variable does not exist
Environment variable does not exist


My Personal Notes arrow_drop_up

self motivated and passionate programmer

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :

1


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.