다른 명령
새 문서: == 파이썬, ini파일 파서(Config Parser) == Python Config Parser Config Parser Config Parserkishstats.com == Create Config File == <source lang=python> # config_file_create.py from configparser import ConfigParser config = ConfigParser() config['settings'] = { 'debug': 'true', 'secret_key': 'abc123', 'log_path': '/my_app/log' } config['db'] = { 'db_name': 'myapp_dev', 'db_host': 'localhost', 'db_port': '8889' } config['files'] = { 'use_cdn':... |
편집 요약 없음 |
||
| 103번째 줄: | 103번째 줄: | ||
# config_file_read.py | # config_file_read.py | ||
<source lang=sql> | |||
from configparser import ConfigParser, ExtendedInterpolation | from configparser import ConfigParser, ExtendedInterpolation | ||
| 110번째 줄: | 111번째 줄: | ||
print(parser.get('files', 'python_path')) | print(parser.get('files', 'python_path')) | ||
# /usr/local/bin/python3 | # /usr/local/bin/python3 | ||
</source> | |||
여기서 ExtendedInterpolation 을 추가로 import해준다 | 여기서 ExtendedInterpolation 을 추가로 import해준다 | ||
2025년 5월 20일 (화) 08:31 기준 최신판
파이썬, ini파일 파서(Config Parser)
Python Config Parser Config Parser Config Parserkishstats.com
Create Config File
# config_file_create.py
from configparser import ConfigParser
config = ConfigParser()
config['settings'] = {
'debug': 'true',
'secret_key': 'abc123',
'log_path': '/my_app/log'
}
config['db'] = {
'db_name': 'myapp_dev',
'db_host': 'localhost',
'db_port': '8889'
}
config['files'] = {
'use_cdn': 'false',
'images_path': '/my_app/images'
}
with open('./dev.ini', 'w') as f:
config.write(f)
위의 코드를 실행하면 dev.ini 파일이 워킹 디렉토리에 만들어진다.
ini 파일 확인
# dev.ini [settings] debug = true secret_key = abc123 log_path = /my_app/log [db] db_name = myapp_dev db_host = localhost db_port = 8889 [files] use_cdn = false images_path = /my_app/images
Read Config File
# config_file_read.py
from configparser import ConfigParser
parser = ConfigParser()
parser.read('dev.ini')
print(parser.sections()) # ['settings', 'db', 'files']
print(parser.get('settings', 'secret_key')) # abc123
print(parser.options('settings')) # ['debug', 'secret_key', 'log_path']
print('db' in parser) # True
print(parser.get('db', 'db_port'), type(parser.get('db', 'db_port'))) # 8889 <class 'str'>
print(int(parser.get('db', 'db_port'))) # 8889 (as int)
print(parser.getint('db', 'db_default_port', fallback=3306)) # 3306
print(parser.getboolean('settings', 'debug', fallback=False)) # True
sections(): 모든 section 리스트 반환
get(<section_name>,<option_name>): 섹션의 옵션값 str로 반환
getint(),getfloat(),getboolean(): int/float/boolean으로 반환
options(<section_name>):섹션 안의 선택가능한 옵션들반환
in: 섹션 존재 여부 확인
Using String Interpolation
# config_file_create.py
from configparser import ConfigParser
# ...
config['settings'] = {
'debug': 'true',
'secret_key': 'abc123',
'log_path': '/my_app/log',
'python_version': '3',
'packages_path': '/usr/local'
}
# ...
config['files'] = {
'use_cdn': 'false',
'images_path': '/my_app/images',
'python_path': '${settings:packages_path}/bin/python${settings:python_version}'
}
- ...
config['settings']에 python_version&packages_path를 추가
config['files'] 에 python_path를 추가
여기서 표시 형식은 ${<section name>:<option name>} 형태로 기입
- config_file_read.py
from configparser import ConfigParser, ExtendedInterpolation
parser = ConfigParser(interpolation=ExtendedInterpolation())
parser.read('dev.ini')
print(parser.get('files', 'python_path'))
# /usr/local/bin/python3
여기서 ExtendedInterpolation 을 추가로 import해준다
ConfigParser(interpolation=ExtendedInterpolation()) 변경