- Environment Variables in Python – Read, Print, Set
- Environment Variables in Python
- How to Read Environment Variables in Python
- Printing all the Environment Variables in Python
- Getting Specific Environment Variable Value
- How to Check if an Environment Variable Exists?
- How to Set Environment Variable in Python
- Conclusion
- References:
- Python Access Environment variable values
- 1. Quick Examples – Access Environment Variable Values
- 2. Access Environment Variables using os.environ
- 3. os.getenv() – Access Environment Variables Values
- 4. Using python-dotenv Package
- Summary and Conclusion
- You may also like reading:
- AlixaProDev
Environment Variables in Python – Read, Print, Set
Environment variables is the set of key-value pairs for the current user environment. They are generally set by the operating system and the current user-specific configurations. For example, in a Unix environment, the environment variables are set using the user profile i.e. .bash_profile, .bashrc, or .profile files.
Environment Variables in Python
You can think of environment variables as a dictionary, where the key is the environment variable name and the value is the environment variable value.
How to Read Environment Variables in Python
We can use Python os module “environ” property to get the dictionary of all the environment variables. When the os module is loaded by Python interpreter, the environ value is set. Any further changes in the environment variables through external programs will not get reflected in the already running Python program.
Printing all the Environment Variables in Python
The os.environ variable is a dictionary-like object. If we print it, all the environment variables name and values will get printed.
import os # printing environment variables print(os.environ)
If you want to print the environment variables in a better readable way, you can print them in a for loop.
import os for k, v in os.environ.items(): print(f'=')
PATH=/Users/pankaj/Documents/PyCharmProjects/PythonTutorialPro/venv/bin:/Library/Java/JavaVirtualMachines/jdk-12.jdk/Contents/Home/bin:/Library/PostgreSQL/10/bin:/Users/pankaj/Downloads/mongodb/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/Users/pankaj/Downloads/apache-maven-3.5.3/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin PS1=(venv) MAVEN_OPTS=-Xmx2048m -XX:MaxPermSize=128m VERSIONER_PYTHON_VERSION=2.7 LOGNAME=pankaj XPC_SERVICE_NAME=com.jetbrains.pycharm.40096 PWD=/Users/pankaj/Documents/PycharmProjects/AskPython/hello-world PYCHARM_HOSTED=1 PYTHONPATH=/Users/pankaj/Documents/PycharmProjects/AskPython SHELL=/bin/zsh PAGER=less LSCOLORS=Gxfxcxdxbxegedabagacad PYTHONIOENCODING=UTF-8 OLDPWD=/Applications/PyCharm CE.app/Contents/bin VERSIONER_PYTHON_PREFER_32_BIT=no USER=pankaj ZSH=/Users/pankaj/.oh-my-zsh TMPDIR=/var/folders/1t/sx2jbcl534z88byy78_36ykr0000gn/T/ SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.jkodHSyv2v/Listeners VIRTUAL_ENV=/Users/pankaj/Documents/PyCharmProjects/PythonTutorialPro/venv XPC_FLAGS=0x0 PYTHONUNBUFFERED=1 M2_HOME=/Users/pankaj/Downloads/apache-maven-3.5.3 __CF_USER_TEXT_ENCODING=0x1F5:0x0:0x0 Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.wL2naXrbuW/Render LESS=-R LC_CTYPE=UTF-8
Getting Specific Environment Variable Value
Since os.environ is a dictionary object, we can get the specific environment variable value using the key.
import os home_dir =os.environ['HOME'] username = os.environ['USER'] print(f' home directory is ')
Output: pankaj home directory is /Users/pankaj
However, this way to get the environment variable will raise KeyError if the environment variable is not present.
>>> import os >>> env_var = input('Please enter the environment variable name:\n') Please enter the environment variable name: data >>> print(os.environ[env_var]) Traceback (most recent call last): File "", line 1, in File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/os.py", line 678, in __getitem__ raise KeyError(key) from None KeyError: 'data' >>>
A better way to get the environment variable is to use the dictionary get() function. We can also specify the default value if the environment variable is not present.
>>> import os >>> env_var = input('Please enter the environment variable name:\n') Please enter the environment variable name: data >>> print(os.environ.get(env_var)) None >>> print(os.environ.get(env_var, 'CSV')) CSV
How to Check if an Environment Variable Exists?
We can use the “in” operator to check if an environment variable exists or not.
import os env_var = input('Please enter the environment variable name:\n') if env_var in os.environ: print(f' value is ') else: print(f' does not exist')
# Run 1 Please enter the environment variable name: datatype datatype does not exist # Run 2 Please enter the environment variable name: USER USER value is pankaj
How to Set Environment Variable in Python
We can set the environment variable value using the syntax: os.environ[env_var] = env_var_value
import os env_var = input('Please enter environment variable name:\n') env_var_value = input('Please enter environment variable value:\n') os.environ[env_var] = env_var_value print(f'= environment variable has been set.')
Please enter environment variable name: datatype Please enter environment variable value: CSV datatype=CSV environment variable has been set.
If the environment variable already exists, it will be overwritten by the new value. The environment variable will be set only for the current session of the Python interpreter. If you want to change to be permanent, then you will have to edit the user profile file in the Python program.
Conclusion
It’s very easy to work with environment variables in Python. We can read, add, and update environment variables for the current execution.
References:
Python Access Environment variable values
How to access environment variable values in Python? Environment variables are a way to store configuration values that can be accessed by applications and scripts without hardcoding them into the code. Python provides several methods to get environment variables that are os.environ , os.getenv() , and the python-dotenv package.
In this article, we will explore these different methods and provide code examples to help you learn how to access environment variables. Let’s get started!
1. Quick Examples – Access Environment Variable Values
These examples provide a high-level overview of how to access environment variables using os.environ and os.getenv() . We will discuss each of these methods in more detail and provide examples.
") else: print("DATABASE_URL environment variable not found") # Accessing environment variable using os.getenv() api_key = os.getenv('API_KEY') if api_key is not None: print(f"API key: ") else: print("API_KEY environment variable not found")
2. Access Environment Variables using os.environ
Python os.environ is a dictionary-like object that contains all the environment variables set on the system. You can use it to access individual environment variables by their name or iterate over all environment variables.
To access an individual environment variable using os.environ , you can use the get() method with the name of the variable as the argument. If the variable exists, get() will return its value.
If the variable doesn’t exist, get() will return None . You can also iterate over all environment variables using the items() method. This returns a list of key-value pairs, where each key is the name of an environment variable and each value is its corresponding value.
On my laptop, I get the below environment variables on the console (it’s a partial output).
Note that by using this we can also set the environment variable.
3. os.getenv() – Access Environment Variables Values
The os.getenv() method provided by the os module that allows you to retrieve the value of a specific environment variable by name. It works in a similar way to os.environ.get() .
With using os.getenv() we can also specify the default value, so if the value doesn’t exist it will give us that default value.
4. Using python-dotenv Package
This is a bit advanced method, where you will need to install a third-party package. The python-dotenv package provides a convenient way to load environment variables from a file and make them available to your Python script.
This can be useful if you have a large number of environment variables or if you need to manage them across different environments, such as development, testing, and production.
You need to first install the package:
Once you’ve installed the package, you can create a new .env file in your project directory and define your environment variables in the format NAME=VALUE .
For example: Make sure you create a file with name «.env» .
You can use the load_dotenv() function from the dotenv module to load the environment variables from the .env file into your Python script. If no path is specified, ./.env is used as the default path which means it looks for .env file in the Python script directory.
Summary and Conclusion
We have discussed several methods to access environment variable values in Python, including using os.environ , os.getenv() , and python-dotenv . Use os.environ.items() to get all environment variables and use python-dotenv to load the environment variables from the .env file, this helps you to load different environment variables for each environment.
If you have any questions or comments, feel free to leave them below.
You may also like reading:
AlixaProDev
I am a software Engineer with extensive 4+ years of experience in Programming related content Creation.