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

【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 というのがいいみたい *1 。インストールは次のコマンドをたたくだけだ。

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() で表示する。日本語も問題なく扱えた。

*1 : PySyck というモジュールもあるのだが、こっちは非推奨になってるっぽい?)

Comments:0

Comment Form

Trackbacks:0

TrackBack URL for this entry
http://blog.remora.cx/mt/mt-tb.fcgi/308
Listed below are links to weblogs that reference
【Python 事始め】YAMLで書いた設定ファイルを読み込む from blog.remora.cx

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

Feeds
CC Licence

Creative Commons License

このブログはクリエイティブ・コモンズでライセンスされています。

W3C Validation

I ♥ validator

Return to page top