pyyamlを使ったyamlの読み込み書き込み


はじめに

pythonでyamlファイルの読み込みと書き込みを必ず忘れるので、メモ代わりにまとめています。

環境

win10
python 3.9.1
pyyaml 5.4.1

pyyamlのインストール

pip install pyyaml

使用例

自分がよく使うためのテンプレートの意味もあるので、ここ違うんじゃねって思ったらコメントで指摘してくれるとありがたいです。

ここで使うyamlファイル

example.yaml
key1: value
key2: value

読み込み

read_yaml.py
import yaml


with open('example.yaml', encoding='utf-8')as f:
    example = yaml.safe_load(f)


print(example)
#{'key1': 'value', 'key2': 'value'}

書き込み

write.py
import yaml


example = {'key1': 'value', 'key2': 'value'}
with open('example.yaml','w')as f:
    yaml.dump(example, f, default_flow_style=False, allow_unicode=True)

default_flow_style=Falseはyamlをfllowスタイル(上のexample.yamlの形)に出力するため
allow_unicode=Trueは日本語などをエンコードしないで、読めるように出力するため

書き込みが必要で実際にコード内で使うとき

主に自分が使うとき用

example.py
import yaml


with open('example.yaml', encoding='utf-8')as f:
    example = yaml.safe_load(f)


def close_example():
    with open('example.yaml','w')as f:
        yaml.dump(example, f, default_flow_style=False, allow_unicode=True)

こうしておくことで、内部で変更したりして保存するときに、関数を呼び出すだけで済む。