파이썬에서 환경 변수로 작업하기.
전역 환경 변수에 액세스
os.environ 사용
os.environ
사전을 사용하여 환경 변수를 가져오고 설정할 수 있습니다. 환경 변수 값 얻기:>>> import os
>>> os.environ["HOME"]
'/home/username'
환경 변수 값 설정:
>>> import os
>>> os.environ["FOO"] = "bar"
>>> os.environ["FOO"]
'bar'
os.environ
는 mapping
개체이므로 .pop()
를 사용하여 os.environ
에서 변수를 삭제할 수 있습니다.>>> import os
>>> os.environ["FOO"] = "bar"
>>> print(os.environ.get("FOO"))
bar
>>> os.environ.pop("FOO")
'bar'
>>> print(os.environ.get("FOO"))
None
환경 변수가 존재하지 않으면 Python은
KeyError
를 발생시켜 이를 완화합니다. 환경 변수가 존재하지 않으면 os.environ.get()
를 반환하는 None
를 사용할 수 있습니다.>>> import os
>>> bar = os.environ.get("BAR")
>>> print(bar)
None
os.environ.get()
의 깔끔한 트릭은 기본값을 설정하는 것입니다. 변수가 존재하지 않으면 이 값이 반환됩니다. 기본값을 os.environ.get()
의 두 번째 매개변수로 전달하여 이를 달성할 수 있습니다.>>> import os
>>> bar = os.environ.get("BAR")
>>> print(bar)
None
>>> bar = os.environ.get("BAR", "bar")
>>> print(bar)
bar
os.getenv() 사용
이제 "
os.environ.get()
와 os.getenv()
의 차이점은 무엇입니까?"라고 궁금해하실 수 있습니다. 대답은 단순히 차이가 없다는 것입니다. 성능 측면에서 두 기능은 비교적 유사하게 수행됩니다.$ python3 -m timeit -s "import os" "os.environ.get('HOME')"
500000 loops, best of 5: 730 nsec per loop
$ python3 -m timeit -s "import os" "os.getenv('HOME')"
500000 loops, best of 5: 809 nsec per loop
os.getenv
의 사용법은 os.environ.get()
와 매우 유사하며 동일한 매개변수와 동작을 가집니다.>>> import os
>>> bar = os.getenv("BAR")
>>> print(bar)
None
>>> bar = os.getenv("BAR", "bar")
>>> print(bar)
bar
.env 파일의 변수에 액세스
때로는 중요한 데이터를 저장하거나 구성 옵션만 저장하는 등 다른 프로그램을 방해하지 않고 자체 환경 변수를 작성하고 싶을 때가 있습니다.
.env
파일이 필요합니다.configparser를 사용하여 파일에 액세스
.env 파일과 함께
configparser
를 사용할 때의 주요 단점은 configparser
에 섹션이 필요하다는 것입니다. 즉, .env 파일은 다음과 같아야 합니다.[SECTION1]
VAR_1=foo
변수에 접근하기:
>>> import configparser
>>> config = configparser.ConfigParser()
>>> config.read(".env")
>>> var_1 = config["SECTION1"]["VAR_1"]
>>> print(var_1)
"foo"
python-dotenv를 사용하여 파일에 액세스
python-dotenv
은 .env
모듈을 사용하여 os
파일에서 환경 변수를 읽을 수 있게 해주는 Python 라이브러리입니다.# Our .env file
FOO=bar
>>> import os
>>> from dotenv import load_dotenv
>>>
>>> load_dotenv()
>>> foo = os.getenv("FOO")
>>> print(foo)
"bar"
load_dotenv()
는 기본적으로 현재 디렉토리 또는 상위 디렉토리에서 .env
파일을 검색한 다음 로드하여 프로젝트에서 액세스할 수 있도록 합니다. 그러나 디렉토리를 수동으로 지정할 수도 있습니다....
load_dotenv("path/to/.env")
...
사용 사례: 민감한 데이터 관리
API 토큰으로 작업 중이고 이를 코드에 하드코딩하고 싶지 않아 실수로 일부 버전 제어 소프트웨어에 푸시할 위험이 있다고 가정해 보겠습니다. 환경 변수를 사용하여 토큰을 저장합니다.
# .env
TOKEN=abcdefg12345
import os
from dotenv import load_dotenv
load_dotenv()
token = os.getenv("TOKEN")
# Do stuff with the token
...
결론
이 자습서에서는
os
모듈을 사용하여 호스트 환경 변수에 액세스하는 방법과 .env
및 configparser
를 사용하여 python-dotenv
파일에 저장된 변수에 액세스하는 방법을 배웠습니다.추가 자료
os.getenv
os.environ
Reference
이 문제에 관하여(파이썬에서 환경 변수로 작업하기.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/biasedkiwi/working-with-environment-variables-in-python-4egh텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)