[python] PyYAML을 사용하여 YAML 파일에서 특정 데이터를 필터링하고 다른 파일로 저장하기

YAML (Yet Another Markup Language) 파일은 일반 텍스트 파일로 구조화된 데이터를 저장하는데 사용됩니다. PyYAML은 YAML 파일을 파싱하고 생성하기 위한 Python 라이브러리입니다. 이번 포스트에서는 PyYAML을 사용하여 YAML 파일에서 특정 데이터를 필터링하고 다른 파일로 저장하는 방법에 대해 알아보겠습니다.

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

먼저 PyYAML 라이브러리를 설치해야 합니다. 아래 명령어를 사용하여 설치할 수 있습니다.

pip install pyyaml

YAML 파일 열기

다음으로, 필터링을 하고자 하는 YAML 파일을 엽니다. open() 함수를 사용하여 파일을 열고, yaml.load() 함수를 사용하여 YAML 파일을 파싱합니다.

import yaml

with open('input.yaml', 'r') as file:
    data = yaml.load(file, Loader=yaml.FullLoader)

데이터 필터링하기

파싱한 데이터를 기반으로 원하는 데이터를 필터링할 수 있습니다. 필터링하기 위해 조건문을 사용하거나 리스트 컴프리헨션을 활용할 수 있습니다. 다음은 예시입니다.

filtered_data = [item for item in data['items'] if item['type'] == 'fruit']

위의 코드는 YAML 파일에서 ‘type’이 ‘fruit’인 항목들을 필터링하여 filtered_data에 저장합니다.

데이터 저장하기

필터링된 데이터를 다른 YAML 파일로 저장할 수 있습니다. open() 함수를 사용하여 파일을 열고, yaml.dump() 함수를 사용하여 데이터를 YAML 형식으로 직렬화합니다.

with open('output.yaml', 'w') as file:
    yaml.dump(filtered_data, file)

위의 코드는 filtered_data를 ‘output.yaml’ 파일로 저장합니다.

전체 코드

아래는 전체 코드의 예시입니다.

import yaml

with open('input.yaml', 'r') as file:
    data = yaml.load(file, Loader=yaml.FullLoader)

filtered_data = [item for item in data['items'] if item['type'] == 'fruit']

with open('output.yaml', 'w') as file:
    yaml.dump(filtered_data, file)

결론

PyYAML을 사용하면 YAML 파일에서 원하는 데이터를 필터링하고 다른 파일로 저장하는 작업을 간단하게 수행할 수 있습니다. 이를 활용하여 YAML 파일의 데이터를 손쉽게 가공하고 활용할 수 있습니다.

참고자료