Pythonでiniファイルを読み込みする

Python

Pythonでiniファイルを読み込みする

iniファイルはアプリケーションやシステムの設定情報を保存するために広く使われているテキストベースのファイル形式で、読みやすく編集もしやすいという利点があります。

可読性と編集のしやすさ

iniファイルは、シンプルな「キー=値」のペアで構成されセクションを用いて関連する設定をグループ化することができます。例えば、アプリケーションの言語設定を変更する場合テキストエディタを開いて対応するキーの値を変更するだけで済むため専門的なツールや知識がなくても設定の変更や確認が可能です。

設定情報の柔軟な管理

iniファイルは、アプリケーションのユーザー設定、データベース接続情報、システムやネットワークの環境設定など、多岐にわたる情報を一つのファイルに集約して管理できる柔軟性を持っています。セクションを使って設定をカテゴリ別に整理できるため大量の設定情報でも管理しやすくなります。

プラットフォーム間の移植性

テキストベースであるため、Windows、Mac、Linuxなど、異なるオペレーティングシステム間での互換性が高いです。これによりアプリケーションやシステムを異なる環境に移植する際にも、設定情報の再利用が容易になります。開発者はプラットフォーム固有の設定方法に頼ることなく一貫した設定管理方法を採用できます。

アプリケーションの起動設定とネットワーク設定の管理

iniファイルではアプリケーションの起動パラメーターやネットワーク設定(例えば、IPアドレスやプロキシ設定)といった、システムの動作に必要な細かい設定も管理できます。これによりアプリケーションの動作環境を細かくカスタマイズし最適な状態で運用することが可能になります。

iniファイルはそのシンプルさから多種多様な用途で広く使われています。プログラムによってはより複雑な設定を必要とするためにXMLやJSONファイルを使用する場合もありますが、iniファイルは読み書きが容易であるため依然として人気があります。

本記事ではiniファイルを簡単に読み込みできるget_value関数を紹介します。

Pythonでiniファイルを読み込みするサンプルコード

まずは、get_value関数のサンプルコードを紹介します。

import configparser

# INIファイル名を設定する
INI_FILE_NAME = 'config.ini'

def get_value(section, key):
    """
    指定されたセクションとキーに対応するINIファイルの値を取得する。

    Args:
        section (str): セクション名
        key (str): キー名

    Returns:
        str: セクションとキーに対応するINIファイルの値
    """
    
    # ConfigParserオブジェクトを生成する
    config = configparser.ConfigParser()
    
    # INIファイルを読み込む
    config.read(INI_FILE_NAME, encoding='utf-8')
    
    # 指定されたセクションとキーに対応する値を返す
    return config[section][key]




##############################################################
# 関数のテスト
if __name__ == "__main__":

    log_filename = get_value('DEFAULT', 'logfilename')
    log_file_size = get_value('DEFAULT', 'logfilesize')
    db_path = get_value('DATABASE', 'dbpath')

    print(log_filename)
    print(log_file_size)
    print(db_path)

上記のサンプルコードを使用して、iniファイルから値を取得する方法を示します。以下がサンプルのconfig.iniファイルです。
※プログラムと同じ階層のフォルダに配置してください。

[DEFAULT]

### log関連
#ファイル名
logfilename = debug.log
#ファイルサイズ byte
logfilesize = 10485760
#バックアップ世代数
logbackupcount = 5 
#ログレベル DEBUG, INFO, WARNING, ERROR, CRITICAL
log_level = DEBUG

[DATABASE]

### sqlite3
dbpath = webdata.sqlite3

実行結果

上記のサンプルコードを実行すると、iniファイルに記載された値が取得可能です。実行結果の例を示します。

debug.log
10485760
webdata.sqlite3

まとめ

この記事ではPythonでiniファイルを読み込む方法を紹介しました。設定ファイルを使用することで、プログラムの設定値を柔軟に変更することができます。また、Pythonに標準で実装されているconfigparserモジュールを利用することで、簡潔なコードでiniファイルの値を取得できます。

iniファイルを利用する機会があれば試してみてはいかがでしょうか。

コメント

タイトルとURLをコピーしました