Рубрики
Без рубрики

Переменные среды в Python – Read, Print, Set

Переменные среды в Python могут быть доступны с использованием объекта os.environ. Прочитайте, распечатать и установить переменные среды Python, существует переменная среды.

Автор оригинала: Pankaj Kumar.

Переменные среды – это набор пар-значений пар для текущей пользовательской среды. Они обычно устанавливаются операционной системой и текущими пользовательскими конфигурациями. Например, в среде Unix переменные среды устанавливаются с использованием профиля пользователя I.E.Bash_profile, .bashrc или .profile файлов.

Переменные среды в Python

Вы можете подумать о переменных средах в качестве словаря, где ключ – это имя переменной среды, и значение является значением переменной среды.

Как читать переменные среды в Python

Мы можем использовать свойство Module Python OS «Environment», чтобы получить словарь всех переменных среды. Когда модуль ОС загружается интерпретатором Python, установлено значение ELROCE. Любые дальнейшие изменения в переменных среда через внешние программы не будут отражаться в уже запущенном программе Python.

Печать всех переменных среды в Python

Os.environ Переменная – это словарь, похожий на объект. Если мы распечатаем его, все имеющие и значения переменных среды будут напечатаны.

import os

# printing environment variables
print(os.environ)

Выход:

environ({'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', 'HOME': '/Users/pankaj', '__PYVENV_LAUNCHER__': '/Users/pankaj/Documents/PycharmProjects/AskPython/venv/bin/python'})
Переменная среды в Python

Если вы хотите напечатать переменные среды лучше читабельно, вы можете распечатать их в цикле.

import os

for k, v in os.environ.items():
    print(f'{k}={v}')

Выход:

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

Получение определенного значения переменного окружения

Поскольку OS.ENVIRON является объектом словаря, мы можем получить определенное значение переменной среды с использованием ключа.

import os

home_dir =os.environ['HOME']
username = os.environ['USER']
print(f'{username} home directory is {home_dir}')

Выход : Pankaj Home Directory/пользователи/Pankaj

Тем не менее, этот способ получить переменную среды повысит keyError, если переменная среды нет.

>>> 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'
>>>

Лучший способ получить перемезу окружающей среды – использовать функцию Get () словаря. Мы также можем указать значение по умолчанию, если переменная среды нет.

>>> 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

Как проверить, существует ли перемещая среда?

Мы можем использовать оператор «В», чтобы проверить, существует ли переменная среды или нет.

import os

env_var = input('Please enter the environment variable name:\n')

if env_var in os.environ:
    print(f'{env_var} value is {os.environ[env_var]}')
else:
    print(f'{env_var} 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

Как установить переменную среды в Python

Мы можем установить значение переменной среды с помощью синтаксиса: Os.environ [env_var]

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'{env_var}={os.environ[env_var]} environment variable has been set.')

Выход:

Please enter environment variable name:
datatype
Please enter environment variable value:
CSV
datatype=CSV environment variable has been set.

Если вариабельная среда уже существует, она будет перезаписана новым значением. Переменная среды будет установлена только для текущего сеанса интерпретатора Python Отказ Если вы хотите изменить, чтобы быть постоянным, вам придется редактировать файл профиля пользователя в программе Python.

Заключение

Очень легко работать с переменными среды в Python. Мы можем прочитать, добавлять и обновлять переменные среды для текущего выполнения.

Рекомендации: