Configparser
Property 파일처럼 사용할 수 있는 Configparser 모듈에 대해서 아라보자.
파일 생성 (config.ini)
ini 파일을 생성하자. 파일 내용에는 각 섹션이라고 하는 큰 분류 값이 있으며, 그 안에는 Key-Value 형태의 데이터로 구성되어 있다.
보통 섹션 Key 값은 대문자로 입력을 하고 세부내용은 소문자로 입력을 한다. 아래 내용을 참고해보자
[DEFAULT]
config = 0
textfile = config.ini
[TEST]
test = 0.5
[CONFIG]
id = None
age = 150
configparser - Get
configparser을 정의하고 파일을 불러오면 내용을 key 값으로 조회가 가능하다
import configparser
# ConfigParser 객체 생성
properties: configparser.ConfigParser = configparser.ConfigParser()
# 파일 읽기
properties.read('config.ini')
# DEFAULT 섹션 선택
default: configparser.SectionProxy = properties['DEFAULT']
# TEST 섹션 선택
test: configparser.SectionProxy = properties['TEST']
# CONFIG 섹션 선택
config: configparser.SectionProxy = properties['CONFIG']
# Key-Value 조회
print(default['textfile'])
print(test['test'])
print(config['id'])
결과는 아래와 같다
$ python3 main.py
config.ini
0.5
None
물론 가져온 값은 항상 문자열 형태이다. "1" 이라는 값을 숫자로 사용하기 위해서는 값을 가져온 다음에 형변환 하는 방법이 있을 수 있겠지만, 값을 가져올 때 아예 int 값으로 형변환 시켜서 가져오게끔 할 수도 있다.
print(test.getint('test'))
이 외에
getboolean()
,getfloat()
사용이 가능하다
configparser - Set
이제 값을 조회해봤으니 값을 넣는 방법에 대해서 알아보자.
해당 객체에 섹션, key, value 값 입력이 필요하다.
다음은 값을 추가하는 내용입니다.
properties.set("DEFAULT", "addkey", "configset")
default = properties["DEFAULT"]
default.setdefault("abc", "a")
print( default["addkey"] )
print( default["abc"] )
이렇게 저장하면 코드 내에서 다시 불러올 수 있게된다. 하지만 ini 파일에 추가가 되지는 않는다. 파일에도 저장하기 위해서는 with context manager를 사용하여 파일에 쓰면 된다.
configparser - Save
불러온 값을 수정/추가 하게되면 새로 파일을 써야 기록이 된다
with open(filepath,'w') as fp:
properties.write(fp)
filepath 는 실제 파일 경로이다. 여기서는 config.ini이 되겠다.
이렇게 하면 ini 파일 형태로 기록을 한다.
이때 섹션값을 대문자로, 세부내용은 소문자로 기록이 됩니다.