Python에서 ConfigParser를 사용하여 구성 파일을 읽는 방법

프로젝트 과정에서 각종 IP와 포트 번호 정보 등을 설정해야 한다. 매번 원본 프로그램에서 변경하면 번거롭다. (매번 프로젝트를 다시 시작해서 프로필을 다시 불러와야 하기 때문에) 수정해야 할 파라미터를 프로필(또는 데이터베이스)에 쓰고 매번 프로필만 수정하면 같은 목적을 실현할 수 있다.Python 표준 라이브러리의 ConfigParser 모듈은 프로필을 읽고 조작하는 API를 제공합니다.따라서 프로그램 시작 위치에서 이 모듈을 가져오려면python2인지python3인지 구분해야 합니다.python3은 약간의 변경이 있습니다
import ConfigParser #python 2.x
import configparser #python 3.x
프로필 형식
  • a) 프로필에는 한 개 이상의 섹션이 포함되어 있으며, 각 섹션마다 옵션이 있습니다
  • b) section은 [sect_name]으로 각 옵션은 키 값이 맞다는 것을 나타냅니다. 구분자 = 또는: 구분;
  • c) 옵션 구분자 양쪽에 있는 공백은 무시됩니다
  • d) 프로필 사용# 및;메모
  • 간단한 프로필 샘플 config.conf
    
    # database source
    [db]   #  section
    host = 127.0.0.1  #  option 
    port = 3306
    user = root
    pass = root
     
    # ssh
    [ssh]
    host = 192.168.10.111
    user = sean
    pass = sean
    ConfigParser의 기본 작업
    a) ConfigParser 실례화 및 구성 파일 로드
    cp = ConfigParser.SafeConfigParser()
    cp.read('config.conf')
    b) section 목록,option 키 목록,option 키 값 모듈 목록 가져오기
    print('all sections:', cp.sections()) # sections: ['db', 'ssh']
    print('options of [db]:', cp.options('db')) # options of [db]: ['host', 'port', 'user', 'pass']
    print('items of [ssh]:', cp.items('ssh')) # items of [ssh]: [('host', '192.168.10.111'), ('user', 'sean'), ('pass', 'sean')]
    c) 지정된 구성 정보 읽기
    print('host of db:', cp.get('db', 'host')) # host of db: 127.0.0.1
    print('host of ssh:', cp.get('ssh', 'host')) # host of ssh: 192.168.10.111
    d) 형식별 설정 정보 읽기: getint, getfloat, getbooleanprint(type(cp.getint('db', 'port'))) # <type 'int'>e) 옵션 존재 여부 판단print(cp.has_option('db', 'host')) # True   
    f) 옵션 설정cp.set('db', 'host','192.168.10.222')g) 삭제 옵션cp.remove_option('db', 'host')h) 섹션 존재 여부 판단print(cp.has_section('db')) # Truei) 섹션 추가cp.add_section('new_sect')j) 섹션 삭제cp.remove_section('db')k) 구성 저장, set,remove_option、 add_section and remove_section 등의 작업은 프로필을 수정하지 않습니다. write 방법은 ConfigParser 객체의 프로필을 파일에 쓸 수 있습니다
    cp.write(open('config.conf', 'w'))
    cp.write(sys.stdout)
    이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.

    좋은 웹페이지 즐겨찾기