讓我們從程式開始看起,我們輸入的鍵都是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 檔案已經成功寫入。")
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 檔案已經成功寫入。")
鍵值維持大小寫了