【Python 事始め】YAMLで書いた設定ファイルを読み込む


Python で YAML を扱うためにはサードパーティのモジュールが必要だ。Perl で言う cpan コマンドに当たるのは easy_install というものらしい。

easy_installとは
http://morchin.sakura.ne.jp/effective_python/easy_install.html

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

ブラウザで ez_setup.py をダウンロードして実行する。

C:\> python ez_setup.py

これで Python をインストールしたフォルダ直下の Scripts フォルダに easy_install.exe という実行ファイルが作成される。

Python で YAML を扱うモジュールは PyYAML というのがいいみたいPySyck というモジュールもあるのだが、こっちは非推奨になってるっぽい?)。インストールは次のコマンドをたたくだけだ。

C:\> D:\Python26\Scripts\easy_install PyYAML

実際に使ってみる

次のような設定ファイルを用意する。

config.yaml

---
data1: 値1
data2:
    data20: 値20
    データ21:
        - value21
        - 値22

文字コードはシフト JIS、改行コードは CRLF(要するに、メモ帳での標準形式)とした。これを読み込むスクリプトは次のようになる。

test.py

# coding=utf-8
import yaml
import codecs

try:
    # シフト JIS でデコードしながら読み込む
    fh = codecs.open( "config.yaml", "r", "shift-jis" )
    cfg = yaml.load( fh )
    print yaml.dump(
            cfg
            # CP932 でエンコードして出力
            ,encoding = "cp932"
            # ASCII 文字以外を許す
            ,allow_unicode = True
            # ブロックスタイルで表示
            ,default_flow_style = False
            )
except IOError:
    print u"設定ファイルが読み込めませんでした。"

実行例

C:\> python test.py
data1: 値1
data2:
  data20: 値20
  データ21:
  - value21
  - 値22

load() で読み込み、dump() で表示する。日本語も問題なく扱えた。

One thought on “【Python 事始め】YAMLで書いた設定ファイルを読み込む

  1. Pingback: 紺色ダイス | [Python] YAMLを読んでみよう

コメントを残す