コンフィグ コントロール の方法【 Python ConfigParser 】
ソースコード内に可変の設定、例えばファイル保存先などは、プログラムの実行前に書き換える場合が考えられます。プログラム言語によっては、 コンフィグ ファイルと呼ばれる設定ファイルで、 コントロール していると思います。 Python でも ConfigParser というライブラリで可能なんです。
ConfigParserとは?
あまり知られていませんが、Pythonでも外だしのコンフィグファイルを作成し、読み込みを制御するライブラリが存在します。
ライブラリ名:configparser
今回は、ユーザ毎のローカルのマイドキュメントなど、ユーザ名がパスに含まれる場合、都度書き換え不要となるようなサンプルをご紹介します。
サンプルコード
/* ライブラリインポート */
import configparser as cfg
/* コンフィグ切り替えキー例 */
user = taro
/* もしくは自動的に取得する場合の追加ライブラリ他 */
import os
user = os.getlogin()
/* コンフィグの読み込み */
cfg = cfg.Configparser()
cfg.read = ('config.ini' , 'UTF-8')
print('userID:' + user)
print('Mydocument Folder:' + cfg.get(user , 'mydocfolder')
/* コンフィグ設定ファイル */
/* ファイル名:config.ini */
[taro]
user = taro
mydocfolder = c://Users/taro/MyDocument
desktop = c://Users/taro/Desktop
[hanako]
user = hanako
mydocfolder = c://Users/hanako/MyDocument
desktop = c://Users/hanako/Desktop
マイドキュメントやデスクトップフォルダを参照している場合は、ログインユーザで可変となります。
その場合は個別に、ログインユーザを指定するより、osライブラリで自動的に取得する方が断然便利です。(8,9行目)
同じワーキングディレクトリに、例えば、config.iniと呼ばれるテキストファイルを準備し、[ ]でキー情報(今回はuserとして指定)を記載し、その属性として、引数を設定します。文字でも数値でも可能です。(今回はmydocfolder,desktopなど)
コンフィグファイルを一度読み込めば(12,13行目)自由に値を使用できます。
同じPythonファイルと、コンフィグファイルを使えば、taroさんと、hanakoさんの設定を変えることなく使用できます。
今回のサンプルはログインユーザで変わる、マイドキュメントなどですが、各々任意のフォルダを使っている場合も同様です。
コンフィグファイルに各々の任意フォルダを記載すれば、ソースコード内のフォルダの設定を都度書き換える必要はありませんし、フォルダ場所を変えたい場合は、コンフィグファイルのみの書き換えで一括置き換えができます。
ちょっとしたことですが知ってると大変便利ですので活用してみてはどうでしょうか?