[python] PyYAML을 사용하여 YAML 파일의 특정 데이터 업데이트하기

PyYAML은 파이썬에서 YAML 파일을 처리하는 라이브러리입니다. 이 라이브러리를 사용하면 YAML 파일의 데이터를 쉽게 읽고 업데이트할 수 있습니다. 이번 포스트에서는 PyYAML을 사용하여 YAML 파일에서 특정 데이터를 업데이트하는 방법에 대해 알아보겠습니다.

PyYAML 설치하기

먼저, PyYAML을 설치해야 합니다. 다음 명령어를 사용하여 PyYAML을 설치할 수 있습니다.

pip install PyYAML

YAML 파일 읽기

먼저, YAML 파일을 읽어와야 합니다. 다음과 같이 yaml 모듈을 import하고 open 함수를 사용하여 YAML 파일을 열 수 있습니다.

import yaml

def load_yaml_file(file_path):
    with open(file_path, 'r') as file:
        data = yaml.load(file, Loader=yaml.FullLoader)
        return data

위의 코드에서 load_yaml_file 함수는 YAML 파일을 읽어와 파이썬 객체로 변환하여 반환합니다.

특정 데이터 업데이트하기

이제 YAML 파일에서 특정 데이터를 업데이트하는 방법을 알아보겠습니다. 예를 들어, 다음과 같은 YAML 파일이 있다고 가정해 봅시다.

- name: John
  age: 25
  country: USA
- name: Lisa
  age: 30
  country: Canada
- name: David
  age: 28
  country: UK

이 YAML 파일의 데이터를 업데이트하기 위해서는 다음과 같이 yaml 모듈을 사용하여 파이썬 객체로 변환한 후 원하는 데이터를 수정하고 다시 YAML 형식으로 변환해야 합니다.

def update_yaml_data(file_path, name, new_age):
    data = load_yaml_file(file_path)

    for item in data:
        if item['name'] == name:
            item['age'] = new_age

    with open(file_path, 'w') as file:
        yaml.dump(data, file)

위의 update_yaml_data 함수는 YAML 파일을 읽어와서 입력받은 이름(name)과 일치하는 데이터의 나이(age)를 업데이트합니다. 업데이트 된 데이터를 YAML 파일에 다시 저장합니다.

예제 실행

위의 예제를 실행해보겠습니다. 다음과 같이 실행할 수 있습니다.

update_yaml_data('data.yaml', 'Lisa', 32)

이렇게 실행하면 data.yaml 파일에서 이름이 “Lisa”인 데이터의 나이가 32로 업데이트됩니다.

결론

PyYAML을 사용하면 YAML 파일을 손쉽게 처리할 수 있습니다. 특정 데이터를 업데이트하는 예제를 통해 PyYAML의 활용법을 알아보았습니다. PyYAML의 다양한 기능과 메서드를 찾아보면 YAML 파일을 더욱 효과적으로 다룰 수 있습니다.

참고 자료