2024-05-02|閱讀時間 ‧ 約 24 分鐘

[Python基礎]configparser函式庫寫入ini,鍵自動轉換小寫問題

讓我們從程式開始看起,我們輸入的鍵都是KeY,卻在寫入ini時,都轉換成小寫了。

因為預設情況下,configparser 會將配置文件中的鍵(Key)轉換成小寫形式。也就是說,即使配置文件中鍵的寫法是大寫或混合大小寫,讀取時都會轉換成小寫。

如以下的程式範例

其中的鍵值為KeY1 KeY2 KeY3 KeY4,但寫入到ini時則都自動轉換成小寫的key了。

import configparser

# 創建 ConfigParser 物件
config = configparser.ConfigParser()

# 新增 Section 和資料
config['Section1'] = {'KeY1': 'Value1', 'KeY2': 'Value2'}

# 新增另一個 Section 和資料
config['Section2'] = {}
config['Section2']['KeY3'] = 'Value3'
config['Section2']['KeY4'] = 'Value4'

# 寫入配置到檔案
with open('D:/CRABpy/write/ini/example.ini', 'w') as configfile:
config.write(configfile)

print("INI 檔案已經成功寫入。")

ini寫入結果


保留配置文件中鍵的原始大小寫形式

config.optionxform = lambda option: option

使用 config.optionxform = lambda option: option 這行程式碼,您將 optionxform 屬性設置為一個 lambda 函式,這個 lambda 函式將不對鍵進行任何轉換,直接返回原始的鍵值。

換句話說,這樣設置之後,配置文件中的鍵在讀取時不會被轉換成小寫。

舉例來說,如果配置文件中有一個鍵是 KeY1,預設情況下會被轉換成 key1,但是使用了 config.optionxform = lambda option: option 這行程式碼之後,該鍵在讀取時會保持為 KeY1,不會轉換成小寫。

修改後的程式範例

新增這行程式碼 config.optionxform = lambda option: option

import configparser

# 創建 ConfigParser 物件
config = configparser.ConfigParser()

# 保留原先鍵大小寫
config.optionxform = lambda option: option

# 新增 Section 和資料
config['Section1'] = {'KeY1': 'Value1', 'KeY2': 'Value2'}

# 新增另一個 Section 和資料
config['Section2'] = {}
config['Section2']['KeY3'] = 'Value3'
config['Section2']['KeY4'] = 'Value4'

# 寫入配置到檔案
with open('D:/CRABpy/write/ini/example.ini', 'w') as configfile:
config.write(configfile)

print("INI 檔案已經成功寫入。")

鍵值維持大小寫

維持大小寫




分享至
成為作者繼續創作的動力吧!
利用簡單的程式範例,詳細及白話文的方式解釋
© 2024 vocus All rights reserved.