[python] PyYAML을 사용하여 YAML 파일의 데이터를 압축하고 새로운 포맷의 파일로 저장하기

이번 포스트에서는 PyYAML 라이브러리를 사용하여 YAML 파일의 데이터를 압축하고, 새로운 포맷의 파일로 저장하는 방법을 알아보겠습니다. YAML은 사람과 기계가 모두 이해하기 쉬운 데이터 직렬화 형식으로, 대부분의 프로그래밍 언어에서 지원됩니다. 하지만 때로는 용량이 큰 YAML 파일을 압축하여 저장할 필요가 있을 수 있습니다.

PyYAML 설치하기

먼저, PyYAML 라이브러리를 설치해야 합니다. 다음 명령어를 사용하여 PyYAML을 설치합니다:

pip install pyyaml

YAML 파일 압축하기

이제 PyYAML을 사용하여 YAML 파일을 압축해보겠습니다. 아래는 YAML 파일을 압축하는 예시 코드입니다.

import yaml
import gzip

def compress_yaml_file(input_file, output_file):
    # YAML 파일 로드
    with open(input_file, 'r') as f:
        data = yaml.safe_load(f)

    # 데이터 압축
    compressed_data = yaml.dump(data)

    # 압축된 데이터를 gzip으로 저장
    with gzip.open(output_file, 'wb') as f:
        f.write(compressed_data.encode('utf-8'))

# YAML 파일 압축하기
input_file = 'input.yaml'
output_file = 'output.yaml.gz'
compress_yaml_file(input_file, output_file)

위 코드에서는 compress_yaml_file 함수를 정의하여 입력 파일을 열고 YAML 데이터를 로드합니다. 그리고 yaml.dump 함수를 사용하여 데이터를 압축한 후, gzip 형식으로 저장합니다.

압축된 YAML 파일 로드하기

만약 압축된 YAML 파일을 로드하고 싶다면, 다음과 같이 코드를 작성할 수 있습니다.

import yaml
import gzip

def load_compressed_yaml_file(input_file):
    # gzip 파일 열기
    with gzip.open(input_file, 'rb') as f:
        compressed_data = f.read()

    # 압축된 데이터를 문자열로 디코딩
    data = compressed_data.decode('utf-8')

    # YAML 데이터 로드
    loaded_data = yaml.safe_load(data)

    return loaded_data

# 압축된 YAML 파일 로드하기
input_file = 'output.yaml.gz'
data = load_compressed_yaml_file(input_file)
print(data)

위 코드에서는 load_compressed_yaml_file 함수를 정의하여 압축된 YAML 파일을 열고 데이터를 로드합니다. 이후 yaml.safe_load 함수를 사용하여 데이터를 파싱하고, 로드된 데이터를 반환합니다.

결론

이번 포스트에서는 PyYAML을 사용하여 YAML 파일의 데이터를 압축하고, 새로운 포맷의 파일로 저장하는 방법에 대해 알아보았습니다. PyYAML은 간단하게 YAML 데이터를 다룰 수 있는 강력한 도구입니다. 압축된 YAML 파일을 사용하면 용량을 줄이고 데이터 전송 시간을 단축시킬 수 있습니다.