在 Python 中讀寫 INI 檔案

INI
檔案是計算機軟體的配置檔案。
它包含表示屬性及其值的鍵值對。這些鍵值對按部分組織。
INI
檔案的副檔名為 .ini
。Microsoft Windows 和基於 Microsoft Windows 的應用程式使用 INI
檔案,該軟體使用 INI
檔案來儲存其配置。
Python 是一種強大且通用的程式語言,可以構建桌面應用程式。由於桌面應用程式包括基於 Microsoft Windows 的應用程式和軟體,Python 開發人員應該使用 INI
檔案來儲存配置並在必要時讀取它們。
本文將教授如何使用 Python 讀寫 INI
檔案。
用 Python 讀寫 INI
檔案
要讀取和寫入 INI
檔案,我們可以使用 configparser
模組。該模組是 Python 標準庫的一部分,用於管理 Microsoft Windows 中的 INI
檔案。
這個模組有一個類 ConfigParser
包含所有的實用程式來玩 INI
檔案。我們可以將此模組用於我們的用例。
讓我們通過一個簡單的例子來了解這個庫的用法。請參閱以下 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
。這意味著將在 section
下新增一個鍵值對,其中鍵是 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
。
它會在部分
下找到選項
。get()
方法在指定部分下找不到指定選項時會丟擲 NoOptionError
異常。
因此,為了避免任何執行時異常,get()
方法呼叫和 print()
語句都包含在 try...except
塊中。