[python] PyYAML을 이용하여 YAML 파일의 데이터를 병합하고 정렬하기

YAML은 사람이 쉽게 읽고 쓸 수 있는 데이터 직렬화 양식입니다. YAML 파일은 트리 구조로 구성되어 있으며, 여러 파일에 걸쳐 분산되어 있는 데이터를 병합하여 사용할 수 있습니다.

이번 글에서는 Python의 PyYAML 라이브러리를 사용하여 YAML 파일의 데이터를 병합하고, 필요에 따라 정렬하는 방법을 알아보겠습니다.

필요한 라이브러리 설치하기

먼저, PyYAML 라이브러리가 설치되어 있는지 확인하고 없는 경우 아래의 명령어를 사용하여 설치합니다.

pip install PyYAML

YAML 파일 병합하기

PyYAML은 YAML 파일을 파싱하여 Python의 딕셔너리나 리스트로 변환할 수 있습니다. 따라서 YAML 파일을 병합하기 위해서는 파싱 후에 데이터를 병합하면 됩니다.

아래의 예제는 두 개의 YAML 파일(file1.yamlfile2.yaml)을 병합하여 결과를 가져오는 방법을 보여줍니다.

import yaml

# 첫 번째 YAML 파일 읽기
with open("file1.yaml", "r") as file:
    data1 = yaml.safe_load(file)

# 두 번째 YAML 파일 읽기
with open("file2.yaml", "r") as file:
    data2 = yaml.safe_load(file)

# 데이터 병합
merged_data = {**data1, **data2}

# 병합된 결과 출력
print(merged_data)

YAML 파일 데이터 정렬하기

PyYAMLdump() 함수를 사용하면 Python의 딕셔너리나 리스트를 다시 YAML 형식으로 변환할 수 있습니다. 이 함수에 sort_keys 옵션을 사용하여 데이터를 정렬할 수 있습니다.

아래의 예제는 YAML 파일을 읽은 후 데이터를 정렬하여 다시 파일에 쓰는 방법을 보여줍니다.

import yaml

# YAML 파일 읽기
with open("data.yaml", "r") as file:
    data = yaml.safe_load(file)

# 데이터 정렬
sorted_data = yaml.dump(data, sort_keys=True)

# 정렬된 데이터를 파일에 쓰기
with open("sorted_data.yaml", "w") as file:
    file.write(sorted_data)

결론

Python의 PyYAML 라이브러리를 사용하면 YAML 파일의 데이터를 병합하고 필요에 따라 정렬할 수 있습니다. 이를 통해 YAML 파일을 효율적으로 다룰 수 있으며, 데이터 분석 및 처리에 유용하게 사용할 수 있습니다.