python config

Minsang Yu·2023년 5월 14일
0

Python config

  • 파이썬 config값은 프로그램의 동작을 제어하는 설정값을들 의미합니다.
  • 이러한 값들은 대게 프로그램내에 하드코딩되는 것이 아니라, 외부 파일이나 환경 변수등의 외부 리소스로부터 동적으로 로드됩니다.
  • 이렇게 하면, 프로그램 동작을 변경할 필요가 있을 떄마다 소스 코드를 수정하지 않고도 쉽게 변경할 수 있습니다.
  • config파일은 대게 INI, YAML, JSON 형식 등이 있습니다.
  • 이러한 파일들을 다루기 위해 파이썬은 ConfigParser , PyYAML모듈등을 제공합니다.
  • 설정값들은 보안에 민감한 매우 중요한 정보들이 저장되어 안전한 저장소에 저장되어야합니다.

ConfigParser

  • INI파일 형식의 설정 파일을 다루기 위한 모듈
  • INI파일은 일반적으로 설정 파일을 작성 할 때 많이 사용되는 파일 형식 중 하나이면 [ 색션 ]과 key-value 형식으로 이루어져 있습니다.
  1. Configparser 모듈 사용하기
# 1. Configparser module import
import configparser

# 2. 'ConfigParser' class instance 생성
config = configparser.ConfigParser()

# 3. 'config'객체를 사용해 ini파일 파싱, 설정값 가져오기
# configpaser 클래스의 read()메서드 사용 

config.read('example.ini')

# 4. 설정값을 가져오기 위해서 configParser 클래스의 get() 메서드 이용
# get('section_name', 'key_name')
database_name = config.get('database' , 'name')
username = config.get('database', 'username')

# 5. 설정값을 변경하기 위해 set() 메서드 이용
# set('section_name', 'key', 'new_value')
config.set('database', 'password', 'new_password')

# 6.변경된 값을 파일에 저장하기
with open('config.ini', 'w') as f:
    config.write(f)
  1. 실습하기
    1. database.ini 생성

2. configparser 모듈을 이용해 config 파일값 받아와 출력

    

3. configparser 모듈을 이용해 config 값 변경하기 하고 저장하기

config 값을 변경하고 저장 

변경한 값 출력

잘 저장됐는지 확인

  • ini 파일과 conf 파일은 모두 설정 파일로서 텍스트 파일 형식으로 작성되며, 컴퓨터 프로그램에서 사용됩니다.
  • 하지만, ini 파일은 보통 Microsoft Windows 운영 체제에서 사용되는 파일 확장자로, 설정 데이터를 저장하는 데 자주 사용됩니다. ini 파일은 일반적으로 섹션으로 구성되어 있으며, 각 섹션은 키와 값을 포함합니다. 이러한 설정 파일은 일반적으로 윈도우 응용 프로그램의 설정, 구성 등을 저장하는 데 사용됩니다.
  • 반면에, conf 파일은 일반적으로 UNIX 또는 Linux 시스템에서 사용되는 파일 확장자로, 설정 파일을 저장하는 데 사용됩니다. conf 파일은 일반적으로 섹션 없이 키와 값을 함께 저장합니다. 이러한 설정 파일은 일반적으로 서버 응용 프로그램의 구성, 네트워크 설정, 데몬 설정 등을 저장하는 데 사용됩니다.
  • 따라서, ini 파일과 conf 파일은 운영 체제 및 응용 프로그램에 따라 다른 이름과 형식으로 사용됩니다. 그러나 이러한 파일 형식은 모두 설정 데이터를 저장하기 위한 간단한 텍스트 파일 형식입니다.

python의 명령인수를 활용해 conf 파일 실행하기

 # 터미널에서 명령인수를 사용해 파이썬 프로그램 실행
python3 argv[0] argv[1] argv[2]....

# 파이썬 명령인수를 활용해 conf 파일과 section 할당하기 
python3 Runbatch.py ../conf/Runbatch.conf SECTION -d

# 구체적인 예
python3 Runbatch.py ../conf/Runbatch_DW.conf MARIA_TEST -d


# main에서  명령인수를 받는 코드 

# 현재 모듈의 이름 
module = os.path.basename(sys.argv[0])

# 환경 변수의 길이가 2 이하 일때 에러 : 시스템 종료
	if len(sys.argv) < 2:
		print ( "Usage   : %s BatchName ConfigFile" % module )
		print ( "Example : %s CST ./conf/RunSqlBatch.conf" % module )
		sys.exit()

# config 파일 할당 
cfgFile = sys.argv[1]
# config의 section 할당 
section = sys.argv[2]

# 파일을 클래스 인스턴스에 할당하는 메서드 
cfg = RunBatchConfig(section, cfgFile)
profile
Jr. DataEngineer

0개의 댓글