This package is as simple as possible to get variables from .env files or files with a similar structure.
The package has no dependencies and works with files located in the same directory as the file from which the functions of this package were called.
Function
get_env()
takes the name of the target variable as a string and an optional second parameter - the path to the file. After that, the function returns the value of the variable also as a string.Function
get_envs()
accepts a sequence of variable names as a string, and also an optional parameter-the path to the file. This function returns a list of strings that are the values of the desired variables.Function
get_env_from_file()
combines the functionality of get_env and get_envs and also if the parameter with variable names is left empty, the function returns a dictionary with all the variables from the file.By default,
.env
is specified as the path. Empty lines and lines without the'='
character are skipped. In addition, commenting with a prefix of the'#'
character is supported.In the event that the specified variable is missing or the desired file cannot be found, the corresponding exceptions are thrown.
Install envfileparser from PyPi with pip: pip install envfileparser
The .env file:
CONST1 = 1
CONST2 = -2
VAR1 = "var1"
VAR2 = 'var2'
VAR3 = var3
Python code:
from envfileparser import get_env, get_envs, get_env_from_file
CONST_ONE = get_env('CONST1') # CONST_ONE = '1'
CONST_TWO = get_env('CONST2', file_path='.env') # CONST_TWO = '-2'
all_variables = get_env_from_file()
# all_variables = {'CONST1: '1', 'CONST2': '-2', 'VAR1':= 'var1', 'VAR2': 'var2', 'VAR3': 'var3'}
c1 = all_variables['CONST1'] # c1 = '1'
c2 = all_variables['CONST2'] # c2 = '-2'
variables = get_envs('VAR1', 'VAR2', 'VAR3') # variables = ['var1', 'var2', 'var3']
v1, v2, v3 = variables[0], variables[1], variables[2]
# Service token.
API_TOKEN = f3u12yf36f12f418449go3294g238
PORT = 3417
IP = 127.0.0.1 # loopback
USER = 'ADMIN'
PASSWORD="12345678"
If your value contains the "#" character, then be sure to put it in quotation marks - otherwise the parser will take all subsequent characters (including the" # " character) as a comment:
VAR1 = envfile#parser
VAR2 = "envfile#parser"
Python code:
from envfileparser import get_envs
print(*get_envs('VAR1', 'VAR2'), sep='\n')
Output:
envfile
envfile#parser
New version 0.0.8
:
- Added new function
get_env_from_file()
.- Combines the functionality of
get_env()
andget_envs()
. - If the parameter with variable names is left empty, the function returns a dictionary with all the variables from the file.
get_env_from_file()
return empty dictionary if file is empty.
- Combines the functionality of
- Fixed problems with comments issue #6.
- Removing right and left side spaces in values (all values are string).