PythonでConfigParserを使用した設定ファイルの操作

1. ConfigParserとは

ConfigParserは、Python標準ライブラリに含まれる設定ファイルを読み書きするためのモジュールです。このモジュールは辞書と似たインターフェースを持っています。

設定ファイルの形式は以下の通りです:

[ユーザー情報]
名前 = 山田太郎
パスワード = 987654


[その他の情報]
住所 = 東京
年齢 = 30

「[]」で囲まれた部分がセクションで、セクション内にはキーと値が「=」または「:」で区切られています。

以下も同様に有効です:

[データベース]
ホスト:localhost
ポート:3306
ユーザー名:root
パスワード:password

2. セクションの読み取り

例として、settings.iniというファイルがあり、その内容は次の通りです:

[ユーザー情報]
名前 = 山田 太郎
パスワード = 987654


[その他の情報]
住所 = 東京
年齢 = 30

セクションを取得するコードは次の通りです:

# -*- coding: utf-8 -*-
import configparser

cfg = configparser.ConfigParser()
cfg.read('settings.ini', encoding='utf-8')

print(cfg.sections())  # 全てのセクションをリストで返す

出力結果は次のようになります:

['ユーザー情報', 'その他の情報']

3. 特定セクション内のキーを取得

特定のセクション内の全てのキーを取得するには次のようにします:

keys = cfg.options('ユーザー情報')  # 指定セクション内のキー一覧を取得
print(keys)

出力結果は次の通りです:

['名前', 'パスワード']

4. 特定セクション内の値を取得

特定のセクションとキーに基づいて値を取得する方法は次の通りです:

name_value = cfg.get('ユーザー情報', '名前')
print(name_value)  # 文字列として取得

# 辞書風のアクセスも可能です
password_value = cfg['ユーザー情報']['パスワード']
print(password_value)  # 同様に文字列として取得

出力結果は次の通りです:

山田 太郎
987654

5. 設定ファイルの生成

設定ファイルを作成するコードは次の通りです:

import configparser

new_cfg = configparser.ConfigParser()

# 辞書のような形で追加
new_cfg["ユーザー情報"] = {
    "名前": "佐藤花子",
    "パスワード": "abcdef"
}

new_cfg["プロフィール"] = {
    "職業": "エンジニア",
    "経験年数": "5"
}

# ファイルに書き込む
with open("new_settings.ini", "w", encoding="utf-8") as file:
    new_cfg.write(file)

これにより、現在のディレクトリに新しい設定ファイルが作成されます。

6. 設定ファイルの更新

設定ファイルを更新するコードは次の通りです:

import configparser

update_cfg = configparser.ConfigParser()
update_cfg.read("new_settings.ini", encoding="utf-8")

# 新しいセクションを追加
update_cfg.add_section("会社情報")

# セクションやオプションを削除
if update_cfg.has_option("プロフィール", "経験年数"):
    update_cfg.remove_option("プロフィール", "経験年数")

# 値を変更または追加
update_cfg.set("会社情報", "部署", "開発部")
update_cfg.set("ユーザー情報", "パスワード", "new_password")

# 更新を保存
with open("new_settings.ini", "w", encoding="utf-8") as file:
    update_cfg.write(file)

これにより、既存の設定ファイルが更新されます。

タグ: Python configparser INIファイル

8月2日 01:33 投稿