Python/Utils

파이썬에서 yaml 파일을 읽고 쓰는 방법

jimmy_AI 2022. 11. 27. 00:05
반응형

Python yaml 불러오기, 내보내기

자주 사용되는 데이터 저장 포맷 양식 중 하나인 yaml 파일을

파이썬에서 읽고 쓰는 방법을 간단히 요약해보도록 하겠습니다.

 

 

yaml 파일 읽기

아래와 같은 내용의 example.yaml 파일이 저장되어 있다고 가정하여

해당 파일을 불러오는 예제를 다루어 보겠습니다.

name, age, skills, hobby의 4가지 카테고리에 대한 정보가 담겨있으며,

skills는 딕셔너리, hobby는 리스트와 유사한 형태로 정보를 포함한 예시입니다.

 

위의 yaml 파일을 파싱하기 위한 과정은 다음과 같습니다.

 

1. 파일을 파싱하기 위하여 먼저 yaml 모듈을 임포트해줍니다.

# 미설치 시 !pip install pyyaml 명령어로 설치
import yaml

 

2. open 구문으로 파일을 열고, yaml.full_load 메소드를 활용하여 파일을 읽어줍니다.

load 및 safe_load 메소드로도 파일을 열 수 있으니 참고하세요.

with open('example.yaml') as f:
    file = yaml.full_load(f)

# 다음 구문도 활용 가능
# file = yaml.load(f, Loader = yaml.FullLoader)
# file = yaml.safe_load(f) # 파일을 신뢰할 수 없는 경우 유용

 

반응형

 

3. 저장된 객체의 정보를 확인해줍니다. 결과는 딕셔너리 형태로 저장됩니다.

file

# 출력 결과
{'name': 'jimmy',
 'age': 26,
 'skills': {'python': 'advanced',
  'C++': 'intermediate',
  'R': 'intermediate',
  'java': 'basic'},
 'hobby': ['reading books', 'working out', 'watching baseball']}
# 일반적인 딕셔너리, 리스트와 동일하게 값 추출 가능
print(file['age']) # 26
print(file['skills']['C++']) # intermediate
print(file['hobby'][0]) # reading books

 

 

yaml 파일 쓰기

이번에는 딕셔너리를 yaml 파일로 내보내는 예제를 다루어 보겠습니다.

 

아래와 같은 my_dict 딕셔너리를 my_dict.yaml 파일로 저장해보도록 하겠습니다.

my_dict = {'A' : 1, 'B' : ['aa', 'bb', 'cc'], 'C' : {'aaa' : 111, 'bbb' : 222}}

 

여기서도 open 구문을 활용하여 파일을 열되, 'w' 인자를 활용하여 쓰기 모드

파일을 열고, yaml.dump 메소드로 내보내기를 진행해줍니다.

with open('my_dict.yaml', 'w') as f:
    yaml.dump(my_dict, f)

 

my_dict.yaml 파일의 결과는 아래와 같이 저장됩니다.