[python] PyYAML을 사용하여 여러 개의 YAML 파일을 병합하기
YAML은 사람이 읽기 쉽고 이해하기 쉬운 데이터 직렬화 형식입니다. PyYAML은 Python에서 YAML을 처리하기 위한 라이브러리입니다. 이번 포스트에서는 PyYAML을 사용하여 여러 개의 YAML 파일을 병합하는 방법을 알아보겠습니다.
개발 환경 셋업
먼저, PyYAML을 설치해야 합니다. 아래의 명령어를 사용하여 PyYAML을 설치합니다.
pip install PyYAML
PyYAML이 설치되었다면, YAML 파일을 읽어오고 병합하는 코드를 작성해보겠습니다.
YAML 파일 병합하기
import yaml
def merge_yaml_files(file_list):
merged_data = {}
for file_path in file_list:
with open(file_path, 'r') as file:
data = yaml.safe_load(file)
merged_data = merge_dict(merged_data, data)
return merged_data
def merge_dict(dict1, dict2):
if not isinstance(dict1, dict) or not isinstance(dict2, dict):
return dict2
merged_dict = dict1.copy()
for key, value in dict2.items():
if key in merged_dict and isinstance(merged_dict[key], dict) and isinstance(value, dict):
merged_dict[key] = merge_dict(merged_dict[key], value)
else:
merged_dict[key] = value
return merged_dict
# 병합할 YAML 파일들의 경로
file_list = ['file1.yaml', 'file2.yaml', 'file3.yaml']
# YAML 파일 병합
merged_yaml_data = merge_yaml_files(file_list)
# 병합된 YAML 데이터를 파일로 저장
with open('merged.yaml', 'w') as file:
yaml.dump(merged_yaml_data, file)
이 코드는 merge_yaml_files
함수를 통해 주어진 YAML 파일들을 읽어와 병합한 뒤, merged.yaml
파일로 저장하는 기능을 제공합니다. merge_dict
함수는 두 개의 딕셔너리를 병합하는 로직을 구현한 함수입니다.
실행 결과
위의 코드를 실행하면 주어진 YAML 파일들이 병합되어 merged.yaml
파일로 저장됩니다.
즉, file1.yaml
, file2.yaml
, file3.yaml
파일의 YAML 내용들이 merged.yaml
파일에 병합되어 저장됩니다.