Python での INI ファイルの読み取りと書き込み
INI
ファイルは、コンピュータソフトウェアの構成ファイルです。
これには、プロパティとその値を表すキーと値のペアが含まれています。これらのキーと値のペアは、セクションの下に編成されています。
INI
ファイルの拡張子は .ini
です。INI
ファイルは MicrosoftWindows および MicrosoftWindows ベースのアプリケーションで使用され、ソフトウェアは INI
ファイルを使用して構成を保存します。
Python は、デスクトップアプリケーションを構築できる堅牢で用途の広いプログラミング言語です。デスクトップアプリケーションには MicrosoftWindows ベースのアプリケーションとソフトウェアが含まれているため、Python 開発者は INI
ファイルを使用して構成を保存し、必要に応じてそれらを読み取る必要があります。
この記事では、Python を使用して INI
ファイルを読み書きする方法を説明します。
Python での INI
ファイルの読み取りと書き込み
INI
ファイルの読み取りと書き込みには、configparser
モジュールを使用できます。このモジュールは Python の標準ライブラリの一部であり、MicrosoftWindows にある INI
ファイルを管理するために構築されています。
このモジュールには、INI
ファイルを操作するためのすべてのユーティリティを含むクラス ConfigParser
があります。このモジュールをユースケースに使用できます。
簡単な例を使用して、このライブラリの使用法を理解しましょう。これについては、次の Python コードを参照してください。
import configparser
filename = "file.ini"
# Writing Data
config = configparser.ConfigParser()
config.read(filename)
try:
config.add_section("SETTINGS")
except configparser.DuplicateSectionError:
pass
config.set("SETTINGS", "time", "utc")
config.set("SETTINGS", "time_format", "24h")
config.set("SETTINGS", "language", "english")
config.set("SETTINGS", "testing", "false")
config.set("SETTINGS", "production", "true")
with open(filename, "w") as config_file:
config.write(config_file)
# Reading Data
config.read(filename)
keys = ["time", "time_format", "language", "testing", "production"]
for key in keys:
try:
value = config.get("SETTINGS", key)
print(f"{key}:", value)
except configparser.NoOptionError:
print(f"No option '{key}' in section 'SETTINGS'")
出力:
time: utc
time_format: 24h
language: english
testing: false
production: true
Python コードの説明
Python スクリプトは、最初に ConfigParser
クラスのオブジェクトを作成し、filename
で指定された INI
ファイルを読み取ります。指定されたパスにファイルが存在しなくても問題はありません。
try:
config.add_section("SETTINGS")
except configparser.DuplicateSectionError:
pass
次に、add_section()
メソッドを使用して、INI
ファイルに SETTINGS
セクションを作成しようとします。
セクションがすでに INI
ファイルに存在する場合、add_section()
メソッドは configparser.DuplicateSectionError
例外をスローします。そのため、関数呼び出しは try
ブロックと except
ブロックに囲まれています。
config.set("SETTINGS", "time", "utc")
config.set("SETTINGS", "time_format", "24h")
config.set("SETTINGS", "language", "english")
config.set("SETTINGS", "testing", "false")
config.set("SETTINGS", "production", "true")
次に、set()
関数を使用して、INI
ファイルにデータを書き込みます。
set()
関数は、section
、option
、および value
の 3つの引数を要求します。これは、キーと値のペアがセクション
の下に追加されることを意味します。ここで、キーは option
であり、値は value
です。
上記の Python スクリプトは、5
のようなペアを追加します。
with open(filename, "w") as config_file:
config.write(config_file)
次に、INI
ファイルが開かれ、configparser
ライブラリの write()
メソッドを使用してデータが書き込まれ、最後に保存されます。
config.read(filename)
keys = ["time", "time_format", "language", "testing", "production"]
for key in keys:
try:
value = config.get("SETTINGS", key)
print(f"{key}:", value)
except configparser.NoOptionError:
print(f"No option '{key}' in section 'SETTINGS'")
Python スクリプトは、INI
ファイルを再度読み取り、INI
ファイルの内容を読み取り、get()
メソッドを使用して、書き込まれたすべての情報を取得します。get()
メソッドは、section
と option
の 2つのパラメーターを受け入れます。
section
の下に option
があります。get()
メソッドは、指定されたセクションで指定されたオプションが見つからない場合、NoOptionError
例外をスローします。
したがって、実行時の例外を回避するために、get()
メソッド呼び出しと print()
ステートメントは try...except
ブロック内に囲まれています。