파이썬 프로그램에서 동적 모듈 로딩 및 설정 변경은 매우 유용한 기능입니다. 이를 통해 프로그램의 동작을 설정 파일을 통해 유연하게 변경할 수 있으며, 모듈의 로딩과 설정의 관리를 편리하게 할 수 있습니다.
설정 파일 작성
먼저, 설정 파일을 작성해야 합니다. 설정 파일은 일반적으로 config.ini
나 config.yml
과 같은 확장자를 가지며, 키-값 형태로 구성됩니다. 예를 들면 다음과 같습니다.
[database]
host = localhost
port = 3306
username = myuser
password = mypassword
[app]
debug = true
위의 예시에서는 database
와 app
이라는 두 개의 섹션으로 구분되어 있습니다. 각 섹션에는 해당하는 설정 값들이 키-값 형태로 정의되어 있습니다.
설정 파일 읽기
파이썬에서는 configparser
모듈을 사용하여 설정 파일을 읽고, 설정 값을 가져올 수 있습니다. 다음은 config.ini
파일을 읽고 값을 가져오는 예제입니다.
import configparser
config = configparser.ConfigParser()
config.read('config.ini')
# database 섹션 값 가져오기
host = config.get('database', 'host')
port = config.get('database', 'port')
username = config.get('database', 'username')
password = config.get('database', 'password')
# app 섹션 값 가져오기
debug = config.getboolean('app', 'debug')
configparser
모듈을 사용하여 설정 파일을 읽은 후, get
메서드를 통해 특정 섹션과 키에 해당하는 값을 가져올 수 있습니다. getboolean
메서드를 사용하여 불리언 형태의 값도 가져올 수 있습니다.
동적 모듈 로딩 및 설정 변경
설정 파일을 통해 모듈을 동적으로 로딩하고 설정을 변경하는 것은 파이썬의 장점 중 하나입니다. 다음은 동적 모듈 로딩과 설정 변경을 위한 예제입니다.
import importlib
def load_module(module_name):
module = importlib.import_module(module_name)
return module
def set_module_config(module, config):
for key, value in config.items():
setattr(module, key, value)
# 모듈 로딩
module_name = 'my_module'
my_module = load_module(module_name)
# 설정 값 변경
config = {
'host': 'example.com',
'port': 8080,
'debug': False
}
set_module_config(my_module, config)
importlib
모듈을 사용하여 동적으로 모듈을 로딩할 수 있습니다. 로딩한 모듈에 대해 setattr
함수를 사용하여 설정 값을 변경할 수 있습니다. 이를 통해 실행 중인 프로그램에서 설정을 변경하고 모듈을 재로딩할 수 있습니다.
마무리
파이썬 설정 파일을 통해 동적 모듈 로딩과 설정 변경을 할 수 있다는 것은 개발자에게 매우 유용한 기능입니다. 설정 파일을 이용하면 프로그램의 동작을 유연하게 변경할 수 있으며, 모듈의 로딩과 설정의 관리를 편리하게 할 수 있습니다. 앞서 설명한 방법을 활용하여 프로그램을 개발하고 효율적으로 관리해보세요.
참고 자료: