Python設定ファイルの使い方(.yamlファイル) サンプルコード付

スポンサーリンク
Python/DeepLearning

こんにちは!みやしんです。

今回はpythonの設定ファイルの1つ「yamlファイル」の使い方についてご紹介します。

PythonやAIをもっと勉強したい方🤗

Pyサブスクール:サブスク8,030円/月でPythonを始められるプログラミングスクール
サブスク8,030円/月でPythonを始められるプログラミングスクール。現役エンジニアへの質問も自由に出来ます。話題のPythonを学びたいけどスクールに60万円は高すぎる!でも独学だと挫折が恐い。そんな不満と不安を解決するサブスク型のプ...

スポンサーリンク

設定ファイルとは

設定ファイルとは簡単に言うと「設定(値)が書かれているファイル」です!

そのまんまですね!

データ処理をしたりするときをはじめ、様々な場合で使われています。

例えば、

測定条件:

    温度(℃):60

    速度(km/h):90

    コメント:’正常終了しました’

のような感じです。60、90、’正常終了しました’ のところを設定に応じて変えるイメージです。

スクリプト内に書いても良いのですが、別ファイルとして保存しておいた方が扱いやすいので設定ファイルを使う場合が多いです。

設定ファイルには今回ご紹介するyamlファイル以外にも様々な形式(JSON、XML、ini 等)がありますが、どれを使っても良いです。使いやすいものを選びましょう。 

yamlファイルとは

yamlファイルとは、上記で説明したような設定ファイルです。記述方式が比較的「人」が理解し易いため手動入力による記述を想定したときに使用されることが多いです。(逆にスクリプトなどで自動出力、自動入力を行う想定のものにはJSONなどが用いられることが多い傾向にあります。

PyYAMLモジュールのインストール

Pythonでyamlファイルを扱う際はPyYAMLモジュールを使うと便利です。

インストール方法は、Anacondaの場合は、

conda install pyyaml

pipの場合は、

pip install pyyaml

でできます。

yamlファイルの作成

yamlファイルの基本的な記述方法は下記のようにパラメータ名の後に:を付け、TABでインデントを区切ることで、親パラメータ名 – 子パラメータ名と階層を作りながら記述します。

また、設定値はパラメータ名の後に:を付け、その後ろに記述します。

今回はサンプルとして下記のように記述したyamlファイル(sample.yaml)を準備してみましょう。

# コメントは「#」を付けて入力
# ファイル名 sample.yamlの中身
Param_A:
    param_A_a: 128
    param_A_b: '文字列も使用可能'

Param_B:
    param_B_a: 256
    param_B_b: [[100, 200], [300, 400]] # 配列形式も可能
    param_B_c: {'sample_1':512, 'sample_2':'サンプル'} # 辞書型も可能
みやしん
みやしん

「:」の後ろは1マス開けないとPythonを実行したときにエラーになったにゃ!

気を付けるにゃ!

yamlファイルの読込

続いてyamlファイルをpythonで読み込む方法を記載します。

まず、同じフォルダ内に.pyや.ipynbと.yamlファイルを一緒に置いてください

アイコンがVScodeになっているのは気にしないでください。笑

コードは下記のようになります。

コピペ用のサンプルコード

import yaml # インストール名の「pyyaml」とは異なるので注意してください。
# with文を使って読み込む with open('パス', 'r'は読み込み, encoding=文字コード) as ***
with open('./sample.yaml', 'r', encoding='utf-8') as read_yaml:
    # yaml.safe_load() を使用して、YAML ファイルを読み込む
    sample_yaml = yaml.safe_load(read_yaml)
# 読込んだyamlファイルは辞書型
type(sample_yaml)
# 中身を確認
sample_yaml
# 読込んだyamlファイルのキーは辞書型オブジェクトのためkeys()メソッドで取得可能
sample_yaml.keys(), sample_yaml['Param_A'].keys(), sample_yaml['Param_B'].keys()
# YAMLファイル内の設定値を取得
param_A_a = sample_yaml['Param_A']['param_A_a']
param_A_b = sample_yaml['Param_A']['param_A_b']

param_B_a = sample_yaml['Param_B']['param_B_a']
param_B_b = sample_yaml['Param_B']['param_B_b']
param_B_c = sample_yaml['Param_B']['param_B_c']

# 取得した設定値の確認
param_A_a, param_A_b, param_B_a, param_B_b, param_B_c, param_B_c['sample_1'], param_B_c['sample_2']

PythonやAIをもっと勉強したい方🤗

Pyサブスクール:サブスク8,030円/月でPythonを始められるプログラミングスクール
サブスク8,030円/月でPythonを始められるプログラミングスクール。現役エンジニアへの質問も自由に出来ます。話題のPythonを学びたいけどスクールに60万円は高すぎる!でも独学だと挫折が恐い。そんな不満と不安を解決するサブスク型のプ...

合わせて読みたい

Python/DeepLearning
スポンサーリンク
記事が良かったらSNSでシェアを宜しくお願いします!
みやしんをフォローすると役立つ情報がいっぱいにゃ!
スポンサーリンク

コメント

タイトルとURLをコピーしました