본문 바로가기
Python

[Python] 파이썬 환경변수 가져오는 방법(os.environ) 및 예제

by A6K 2022. 12. 24.

'환경변수(Environment Variable)'는 프로그램이 실행될 때 운영체제에서 설정해주는 변수 값을 의미한다. 환경변수는 프로세스가 운영체제에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임이다. 애플리케이션 레벨에서 설정하기 어려운 값들을 환경변수에 설정하고 프로세스를 실행하는 경우가 많다.

쉘 스크립트에서는 env 명령을 통해 현재 설정되어 있는 환경변수 리스트를 얻어올 수 있는데 파이썬 코드에서는 어떻게 환경변수의 값에 접근할 수 있는지 알아보자.

os.environ

파이썬 내장 모듈인 os 모듈에는 environ이라는 속성이 있다. environ 속성에는 파이썬 코드에서 접근할 수 있는 환경변수의 이름과 값이 딕셔너리 형태로 저장되어 있다.

import os

print(os.environ)

os.environ의 내용을 출력하면 전체 환경변수의 이름들과 값을 확인할 수 있다. 만약 특정 환경변수의 값을 확인하고 싶으면 딕셔너리를 조회하듯이 접근하면 된다.

import os

print(os.environ['HOME'])

위 코드를 실행하면 HOME 변수에 설정되어 있는 경로 값이 출력된다.

os.environ은 현재 환경변수들을 딕셔너리 형태로 제공해준다. 때문에 접근하기 원하는 특정 환경변수가 설정되어 있지 않다면 KeyError가 발생한다. 따라서 환경변수가 설정되어 있지 않은 경우에 대해서 적당한 예외처리를 해줘야한다.

만약 환경변수가 설정되어 있지 않을 때 예외를 발생시키는 대신 None을 반환받고 싶은 경우 딕셔너리처럼 get() 메소드를 활용하면 된다.

import os

# VAR 환경변수가 설정되어 있지 않으면 None 반환
print(os.environ.get('VAR'))

# VAR 환경변수가 설정되어 있지 않으면 ABC 반환
print(os.environ.get('VAR', 'ABC'))

만약 None이 아니라 다른 기본값을 리턴하도록 하고 싶은 경우에는 두 번째 인자에 기본값(Default value)을 넘겨주면 된다.

os.getenv()

os 모듈의 environ 속성은 딕셔너리를 통해 환경변수에 접근한다. 좀 더 간결한 방법으로 환경변수에 접근하고 싶으면 os 모듈의 getenv() 함수를 사용하면된다.

import os

# VAR 환경변수의 값에 접근, 설정되어 있지 않으면 ABC 리턴
print(os.getenv('VAR', 'ABC'))

 

댓글