Python에서 시스템의 환경 변수를 가져오는 방법을 소개합니다.
시스템 환경 변수는, 우분투를 예로 들면, 터미널에서 env
명령어 입력 시 출력되는 내용들입니다.
$ env
SHELL=/bin/bash
SESSION_MANAGER=local/js:@/tmp/.ICE-unix/1364,unix/js:/tmp/.ICE-unix/1364
QT_ACCESSIBILITY=1
COLORTERM=truecolor
...
1. os.environ : 모든 시스템 환경 변수
다음과 같이 모든 시스템 환경 변수를 출력할 수 있습니다.
import os
print(os.environ)
Output:
environ({'PATH': '/home/js/.local/bin:/opt/gradle/latest/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin', 'LC_MEASUREMENT': 'ko_KR.UTF-8', .....
다음과 같이 보기 좋게 출력할 수도 있습니다.
import os
for key, value in os.environ.items():
print('{}: {}'.format(key, value))
Output:
PATH: /home/js/.local/bin:/opt/gradle/latest/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
LC_MEASUREMENT: ko_KR.UTF-8
XAUTHORITY: /run/user/1000/gdm/Xauthority
....
2. os.environ['key'] : 시스템 환경 변수
특정 환경 변수만 가져오려면, os.environ['key']
와 같이 key를 전달하여 value를 가져올 수 있습니다.
import os
print(os.environ['HOME'])
print(os.environ['LANG'])
Output:
/home/js
en_US.UTF-8
3. os.environ.get('key') : 시스템 환경 변수
os.environ.get('key')
으로 특정 key에 대한 환경 변수 값을 가져올 수 있습니다.
import os
print(os.environ.get('HOME'))
print(os.environ.get('LANG'))
Output:
/home/js
en_US.UTF-8
4. 존재하지 않는 환경 변수
다음과 같이 environ['key']
으로 존재하지 않는 환경 변수를 가져오면, KeyError가 발생합니다.
import os
result = os.environ.get('NOT_EXISTS')
print(result)
Output:
/usr/bin/python3.8 /home/js/IdeaProjects/python-ex/getenv.py
/usr/lib/python3/dist-packages/requests/__init__.py:89: RequestsDependencyWarning: urllib3 (1.26.7) or chardet (3.0.4) doesn't match a supported version!
warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "
Traceback (most recent call last):
File "/home/js/IdeaProjects/python-ex/getenv.py", line 3, in <module>
print(os.environ['NOT_EXISTS'])
File "/usr/lib/python3.8/os.py", line 675, in __getitem__
raise KeyError(key) from None
KeyError: 'NOT_EXISTS'
에러를 발생시키지 않는 방법
아래와 같이 environ.get('key')
로 존재하지 않는 환경 변수를 가져오면, 에러는 발생하지 않고 None
이 리턴됩니다.
import os
result = os.environ.get('NOT_EXISTS')
print(result)
Output:
None
5. Default value
환경 변수가 존재하지 않을 때 default value가 리턴되도록 할 수 있습니다. environ.get(key, default)
처럼 default value를 설정할 수 있습니다.
import os
result = os.environ.get('NOT_EXISTS')
print(result)
result = os.environ.get('NOT_EXISTS', 'DEFAULT')
print(result)
Output:
None
DEFAULT
6. Custom 환경 변수
터미널에서 파이썬 프로그램을 실행하기 전에, 예를 들어, 리눅스에서 export
명령어로 커스텀 환경 변수를 추가할 수 있습니다. 이렇게 추가된 커스텀 변수도 파이썬에서 읽을 수 있습니다.
아래 코드는 CUSTOM_ENV
라는 이름의 환경 변수를 출력하는 코드입니다.
import os
result = os.environ.get('CUSTOM_ENV')
print(result)
아래와 같이 파이썬 프로그램을 실행하기 전에 env CUSTOM_ENV=12345
로 변수를 설정하고 실행하면 파이썬에서 커스텀 환경 변수를 읽을 수 있습니다.
$ export CUSTOM_ENV=12345
$ python getenv.py
12345
Related Posts
- Python - Yaml 파일 파싱하는 방법
- Python - 파일 내용 삭제
- Python - for문에서 리스트 순회 중 요소 값 제거
- Python - 두 리스트에서 공통 요소 값 찾기
- Python - 문자열 앞(뒤)에 0으로 채우기
- Python - 공백으로 문자열 분리
- Python - 중첩 리스트 평탄화(1차원 리스트 변환)
- Python - 16진수 문자열을 Int로 변환
- Python - 두 날짜, 시간 비교
- Python f-string으로 변수 이름, 값 쉽게 출력 (변수명 = )
- Python - nonlocal과 global 사용 방법
- Python 바다코끼리 연산자 := 알아보기
- Python - pip와 requirements.txt로 패키지 관리
- Python - 딕셔너리 보기 좋게 출력 (pprint)
- Python - Requests 사용 방법 (GET/POST/PUT/PATCH/DELETE)
- Python - 온라인 컴파일러 사이트 추천
- Python - os.walk()를 사용하여 디렉토리, 파일 탐색
- Python - 문자열 비교 방법
- Python - Text 파일 읽고 쓰는 방법 (read, write, append)
- Python - 리스트에서 첫번째, 마지막 요소 가져오는 방법
- Python - 두개의 리스트 하나로 합치기
- Python - 리스트의 마지막 요소 제거
- Python - 리스트의 첫번째 요소 제거
- Python 소수점 버림, 4가지 방법
- Python 코드 안에서 버전 확인 방법
- Python 소수점 반올림, round() 예제
- Python - 리스트 평균 구하기, 3가지 방법
- Python - bytes를 String으로 변환하는 방법
- Python - String을 bytes로 변환하는 방법
- Python 버전 확인 방법 (터미널, cmd 명령어)
- Python - 람다(Lambda) 함수 사용 방법
- Python - dict 정렬 (Key, Value로 sorting)
- Python - range() 사용 방법 및 예제
- Python - 리스트를 문자열로 변환
- Python - 문자를 숫자로 변환 (String to Integer, Float)