표준 라이브러리인 configparser를 사용하면 .INI 파일을 읽고 쓸 수 있다.



.INI 파일 쓰기

import configparser

config = configparser.ConfigParser()
config['AAA'] = {}                # 섹션을 생성한다
config['AAA']['BBB'] = 'CCC'      # 섹션 아래 실제 값을 생성한다
config['DEFAULT']['DDD'] = 'EEE'      # DEFAULT 섹션은 기본적으로 생성되어 있어 생성없이 쓸 수 있다

with open('config.ini', 'w') as configfile:
    config.write(configfile)

  • 1 Depth에 반드시 섹션을 생성한 후에 그 아래 값을 생성할 수 있다. (1 Depth에는 값을 생성할 수 없다)
  • Depth는 최대 2 Depth까지 가능하다. (2 Depth에는 섹션을 생성할 수 없다)


.INI 파일 읽기 (기본)

import configparser

config = configparser.ConfigParser()
config.read('config.ini')

print("config['AAA']['BBB'] : " + config['AAA']['BBB'])


.INI 파일 읽기 (고급)

import configparser

config = configparser.ConfigParser()
config.read('config.ini')

if not 'AAA' in config:           # 섹션이 존재하는지 체크
    print("config['AAA'] not exist")
   
if 'BBB' in config['AAA']:        # 섹션 아래 값이 존재하는지 체크
    print("config['AAA']['BBB'] : " + config['AAA']['BBB'])
else:
    print("config['AAA']['BBB'] not exist")
    
if 'DDD' in config['AAA']:        # 섹션 아래 값이 존재하는지 체크
    print("config['AAA']['DDD'] : " + config['AAA']['DDD'])
else:
    print("config['AAA']['DDD'] not exist")

  • Config 파일이 존재하지 않을 경우는, 에러가 나지 않고 단지 빈 맵으로 반환된다.(DEFAULT 섹션은 존재한다)


참고사항

<테스트 환경>
 - OS : Windows 10
 - Python 버전 : 3.7.5
,