Pythonのconfigparser
モジュールは、INI形式の設定ファイルを読み込むための便利なツールです。しかし、その使用中にエラーが発生することがあります。ここでは、そのようなエラーの一部とその対処法について説明します。
configparserの基本的な使い方
まず、configparser
の基本的な使い方を見てみましょう。
import configparser
def main():
# configparserのインスタンスを生成
config = configparser.ConfigParser()
# コンフィグファイルを読み込み
config.read('./sample.conf')
# 読み込んだコンフィグは辞書ライクに扱うことができる (でもdict型では無い)
print(config['SECTION1']['hoge'])
print(config['SECTION1'].get('hoge'))
# セクション名のlistを取り出す
sections = config.sections()
print(sections)
# セクション内の項目を丸っと取り出す
conf_section1 = config['section1']
# セクション内も辞書ライクにアクセス可能
print(conf_section1['HOGE'])
# イテレーションもOK
for k, v in conf_section1.items():
print("{0}={1}".format(k, v))
if __name__ == '__main__':
main()
このコードは、configparser
を使ってINI形式の設定ファイルを読み込み、その内容を表示するものです。
configparserでのエラー処理
しかし、このコードはエラー処理を含んでいません。例えば、指定した設定ファイルが存在しない場合や、設定ファイル内に指定したセクションやキーが存在しない場合など、エラーが発生します。
そのようなエラーを適切に処理するためには、以下のようにコードを修正することができます。
import configparser
def main():
config = configparser.ConfigParser()
# ファイルの存在を確認
if not config.read('./sample.conf'):
print("設定ファイルが見つかりません")
return
# セクションの存在を確認
if 'SECTION1' not in config:
print("SECTION1が設定ファイルに存在しません")
return
# キーの存在を確認
if 'hoge' not in config['SECTION1']:
print("hogeがSECTION1に存在しません")
return
print(config['SECTION1']['hoge'])
if __name__ == '__main__':
main()
このコードでは、設定ファイルの存在、セクションの存在、キーの存在をそれぞれ確認しています。これらのいずれかが存在しない場合、エラーメッセージを表示して処理を終了します。
以上が、Pythonのconfigparser
モジュールでのエラー処理の基本的な方法です。適切なエラー処理を行うことで、コードのロバスト性を向上させることができます。