반응형
프로그램을 개발하다보면 환경이나 사용자에 따른 설정값이 필요한 경우가 있습니다. 이러한 설정값을 매번 변수로 설정하고 불러오게 된다면, 불편함이 따르게되고 다양한 환경설정에 어려움이 생기게됩니다. 쉽게 예를 들면, 그림 1과 같이 게임에서 그래픽 설정이 있죠. 이번 포스팅에서는 쉽게 설정 파일을 읽고 쓰게 할 수 있는 표준 라이브러리 configparser 패키지 관리에 대해 알아보겠습니다.
1. configparser를 이용한 설정파일 만들기
import configparser
# 설정파일 만들기
config = configparser.ConfigParser()
# 설정파일 오브젝트 만들기
config['system'] = {}
config['system']['title'] = 'Neural Networks'
config['system']['version'] = '1.2.42'
config 파일을 생성한 뒤, config[ '오브젝트 명' ] = {} 으로 섹션을 생성할 수 있습니다. 데이터의 값은 오직 문자열로만 저장되기 때문에 읽고 쓰기 과정에서 전처리 과정이 필요합니다. 보다 다양하고 많은 숫자형 데이터를 처리하기에는 json 파일 형식이 보다 적합하기도 합니다.
2. 설정파일 저장 후 읽기
# 설정파일 저장
with open('config.ini', 'w', encoding='utf-8') as configfile:
config.write(configfile)
# 설정파일 읽기
config = configparser.ConfigParser()
config.read('config.ini', encoding='utf-8')
# 설장파일 색션 확인
config.sections()
# 섹션값 읽기
ver = config['system']['version']
title = config['system']['title']
print(title,ver)
이러한 매커니즘을 통해 다양한 설정 파일을 읽고 쓰고 불러올 수 있습니다. 파일 내용 수정은 읽기를 통해 불러온 뒤, config 만들기 과정을 반복해주면 됩니다.
3. 최종 응용 코드
# -*- coding: utf-8 -*-
"""
@author: Deep.I Inc.
"""
import configparser
from time import strftime
def config_generator():
# 설정파일 만들기
config = configparser.ConfigParser()
# 설정파일 오브젝트 만들기
config['system'] = {}
config['system']['title'] = 'Neural Networks'
config['system']['version'] = '1.2.42'
config['system']['update'] = strftime('%Y-%m-%d %H:%M:%S')
config['video'] = {}
config['video']['width'] = '640'
config['video']['height'] = '480'
config['video']['type'] = 'avi'
# 설정파일 저장
with open('config.ini', 'w', encoding='utf-8') as configfile:
config.write(configfile)
def config_read():
# 설정파일 읽기
config = configparser.ConfigParser()
config.read('config.ini', encoding='utf-8')
# 설정파일의 색션 확인
# config.sections())
version_read(config)
def version_read(config):
ver = config['system']['version']
title = config['system']['title']
print(title,ver)
config_generator()
config_read()
# 머신러닝 프로젝트 제작, 상담 및 컨설팅 / 머신러닝 접목 졸업작품 컨설팅
# 데이터 가공, 수집, 라벨링 작업 / C, 파이썬 프로그램 제작
# email : deepi.contact.us@gmail.com
# site : www.deep-i.net
반응형
'Python > Python' 카테고리의 다른 글
[Python] PyTicToc 파이썬에서 경과 시간 간편하게 측정하기 (0) | 2020.11.25 |
---|---|
[Python] 파이썬 OpenCV를 이용한 얼굴 인식 (1) | 2020.11.05 |
[Python] OpenCV 실시간으로 영상의 Frame Rate (FPS) 확인하기 (1) | 2020.10.23 |
[Python] OpenCV를 이용한 영상 재생과 Frame Rate (FPS) 조절 (1) | 2020.07.12 |
[YOLO] Python과 OpenCV를 이용한 실시간 객체 탐지 알고리즘 구현 (20) | 2020.06.26 |