• このエントリーをはてなブックマークに追加

【Python】設定ファイルから変数を読み込む方法

  • このエントリーをはてなブックマークに追加


zaco muraです。

最近業務上の都合でいろいろなクラウドサービスを使うのですが、切り離せない関係にあるのがAPIではないでしょうか。猫も杓子も「自動化」と言われている状況の中で、APIを使えば簡単に自動化できる。。。そんな言葉をよく聞きます。

というわけで私もAPIを使った自動化に挑戦していますが、そうなるとbashよりもPythonの方がいろいろと都合が良いので、少しずつPythonにチャレンジしてます。

今回はPythonスクリプトで外部から設定パラメータを読み込むやり方をメモしておきたいと思います。

スポンサーリンク
Sponsords Link

やりたいこと

・設定パラメータを外部ファイルに切り出すことで汎用性を高めたい。
・でもあんまり複雑なことはしたくない。。

環境

・Python2.7
・amazon linux

やり方概要

Pythonには“ConfigParser”という目的ズバリなライブラリがあります。これを使えば簡単にできますので、サンプルコードを書きます。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import ConfigParser

### 設定ファイルの読込を実行
conf_file = sys.argv[1]
config = ConfigParser.SafeConfigParser()

# 気持ち程度のエラー処理
try:
    # configのファイルを開く
    config.read(conf_file)

    # パラメータの読み込み
    human_name = config.get('human', 'name')
    dog_name = config.get('dog', 'name')

# 失敗した時はエラーとだけ伝える
except:
    print "Error occured"
    exit()

# 取得したパラメータのprint
print "human name is " + human_name
print "dog name is " + dog_name

readで設定ファイルを開き、getでパラメータを読み込みます。

ちなみに読み込む設定ファイルはこんな感じです。

[zacomura ~]$ cat conf.txt
[human]
age = 20
name = "Taro"
lang = "Japanese"

[dog]
age = 2
name = "Jiro"
lang = "dog"

このようにセクションを区切って設定パラメータを読み込むことができます。そういえばopenstackの設定ファイルもこんな感じだったんですが、きっとこのライブラリを使っているからなんですかね。

ということで、実行してみます。

[zacomura ~]$ ./config_test.py conf.txt
human name is "Taro"
dog name is "Jiro"

うまくいきました。すごく簡単ですね。

まとめ

ということでpythonを使って設定ファイルを読み込む方法でした。
あくまで個人的な感想ですが、pythonは割と直感的に使えるのでrubyよりも好きです。(あくまで個人的)

スポンサーリンク
Sponsords Link
  • このエントリーをはてなブックマークに追加

ZacoDesign

スポンサーリンク
Sponsords Link